我开始使用websocket-rails,尝试将旧的轮询系统转换为通知(在Ruby 2.1/Rails 4.0上),转换为更现代的WS.我在独立模式下使用WebsocketRails,这是我的配置,基本上是默认的:
WebsocketRails.setup do |config|
config.standalone = true
end
Run Code Online (Sandbox Code Playgroud)
我还在默认端口上运行了一个新的Redis - 这里似乎没有通信问题.
在客户端,我添加了websocket-rails的JS,在尝试打开连接并订阅频道时,使用:
@dispatcher = new WebSocketRails "localhost:3001/websocket"
@channel = @dispatcher.subscribe "notifications"
Run Code Online (Sandbox Code Playgroud)
我在Chrome控制台中看到错误:
WebSocket connection to 'ws://localhost:3001/websocket' failed: Invalid frame header
Run Code Online (Sandbox Code Playgroud)
在Firefox中,错误不同但仍然是错误:
The connection to ws://localhost:3001/websocket was interrupted while the page was loading.
Run Code Online (Sandbox Code Playgroud)
从websocket服务器日志中,我可以看到连接已经启动然后被删除,但是没有其他日志,即使日志级别是"调试"......没有其他错误,我可以看到和粗略的谷歌搜索没有提出任何关于"无效帧头"的事情,所以我几乎被卡住了.
任何帮助,将不胜感激!
编辑:我最终使用NodeJS + Faye让事情发生变化,而且它一直运作良好,我很乐意在系统中引入这个新的移动部件.我确定这个问题只是基于我的具体设置的临时问题,但有时候,你只需要完成任务.