websocket-rails,websocket握手错误

Posted

技术标签:

【中文标题】websocket-rails,websocket握手错误【英文标题】:websocket-rails, websocket handshake error 【发布时间】:2013-12-08 22:22:27 【问题描述】:

我遵循了 websocket-rails github wiki 页面上的文档,但无法克服这个困难,我在 chrome 中遇到了这个错误:

WebSocket connection to 'ws://0.0.0.0:3000/websocket' failed: Error during WebSocket handshake: Unexpected response code: 301

我安装了websocket-rails gem,生成安装,我在development.rb中设置成功config.middleware.delete Rack::Lock;我正在使用 Rails 4。

我进入了视野:

<script type="text/javascript">
  var dispatcher = new WebSocketRails('0.0.0.0:3000/websocket');
</script>

我收到了我的chat_controller.rb

class ChatController < WebsocketRails::BaseController
   def initialize_session
      puts "Session Initialized"
   end

   def user_connected
     puts 'user connected'
   end
end

在我的events.rb:

WebsocketRails::EventMap.describe do
  subscribe :client_connected, :to => ChatController, :with_method => :user_connected
end

如您所见,我的目标是每次有人进入页面时在我的瘦服务器控制台中显示“会话已初始化”和“用户已连接”。在这之间,我使用bundle exec thin start 运行服务器,但我得到了一个 javascript 错误(websocket 连接失败错误 301)。

【问题讨论】:

【参考方案1】:

感谢 Websocket Rails IRC 的成员,我发现在我的路线中,我在每条路径之前都附加了语言环境,所以它找不到它。

如果有人也遇到了这个问题,请查看您的 routes.rb

【讨论】:

routes.rb 是否会为ws 协议路由?

以上是关于websocket-rails,websocket握手错误的主要内容,如果未能解决你的问题,请参考以下文章

websocket-rails 在生产中没有连接

Rails 4 + Websocket-rails + Passenger + Nginx + 负载均衡器

Websocket-Rails 和 IE 8

从 rails runner 内部触发/订阅 websocket-rails 事件

乘客中的重复事件,在 websocket-rails 中

无法在生产服务器上为 websocket-rails 启动独立服务器