Client in websocket maybe not necessarily pseudo-random. Each client should
have “sticky” id?
At least with static id you might uncover more easily the connection drop?
On Sun, Jun 24, 2018 at 12:14 PM Guyren Howe <[email protected]> wrote:

> Trying to use Faye with Rack app.
>
> Server:
>
> Faye::WebSocket.load_adapter 'thin'
>
> app = Rack::Builder.new do
>   use Rack::CommonLogger
>   use Rack::ShowExceptions
>   use Faye::RackAdapter, mount: '/ws', timeout: 5 do |bayeux|
>     bayeux.on(:subscribe) {|id, channel| p "subscribe #{id} #{channel}"}
>     bayeux.on(:publish) {|id, channel, data| p "publish #{id} #{channel} 
> #{data}"}
>   end
>
>   run ->(env) do
>     if Faye::WebSocket.websocket?(env)
>       ws = Faye::WebSocket.new(env)
>
>       ws.on :message do |event|
>         ws.send(event.data)
>       end
>
>       ws.on :close do |event|
>         p [:close, event.code, event.reason]
>         ws = nil
>       end
>
>       # Return async Rack response
>       ws.rack_response
>
>     else
>       return FREST::HTTP.normal_web(
>         context: context,
>         env:     env
>       )
>     end
>   end
> end
>
> Rack::Handler.get('thin').run app, Port: 8080
>
> client:
>
> (function(){
>   window.onload = () => {
>     var js = document.createElement("script")
>     js.src = "/ws/client.js"
>     js.onload = () => {
>       document.client = new Faye.Client('http://localhost:8080/ws')
>
>       document.client.subscribe('/test', (m) => {
>         console.log(m)
>       })
>         .then(console.log("Subscribed!"))
>     }
>
>     document.head.appendChild(js)
>  }
>
> })()
>
>
> From browser console:
>
> c = document.client
>
> c.subscribe('/test', (m) => {document.body = m}).then(() => 
> {console.log('Then!')}, (e) => {console.log("Error!" + e.message)})
>
> Error!Unknown client
>
> Possibly noteworthy:
>
> - every time I do anything with the client, I have a different client_id
>
> - if I monitor handshake, that gets called repeatedly multiple times per 
> second, although it’s not from the line in my onload.
>
> - I’ve tried setting RACK_ENV=production but this does not help
>
>
> Digging into the Unknown Client in the Faye source code, it appears to arise 
> because the client_id sent with the request is not recognized. So I think 
> it’s something like I’m closing and reopening the connection repeatedly for 
> some reason.
>
> Maybe?
>
> Dunno. Any thoughts?
>
> --
> --
> SD Ruby mailing list
> [email protected]
> http://groups.google.com/group/sdruby
> ---
> You received this message because you are subscribed to the Google Groups
> "SD Ruby" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
-- 
Peter Fitzgibbons
(224) 307-9689

-- 
-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
--- 
You received this message because you are subscribed to the Google Groups "SD 
Ruby" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to