私はこのhttps://gist.github.com/ohcibi/5418898 Gist を持っています。これは基本的に sinatra-websocket github ページの例であり、Redis コードが少し貼り付けられています。
settings.redis.subscribe 'foobar' do |on|
on.message do |channel, message|
settings.sockets.each do |s|
s.send message
end
end
end
Sinatra アプリが正しく起動するのをブロックしている aussubscribe
がブロックしている。ハンドラー内にサブスクリプションを配置することで小さな成功を収めましたws.onopen
が、これはすべての新しい Websocket のサブスクリプションをオーバーライドします (つまり、最新の Websocket のみがメッセージを受信します)。
新しい redis メッセージが着信したときに、接続されているすべてのソケットに通知できるようにするにはどうすればよいですか?