Websocket Rails在握手期间获得404

时间:2016-05-10 15:56:32

标签: ruby-on-rails ruby websocket websocket-rails

我安装了' websocket-rails'我刚刚创建了一个JS调度程序,并且在Chrome控制台上出现了404错误。

这是我的JS:

var dispatcher = new WebSocketRails('localhost:3000/websocket');

这是我得到的消息:

  

WebSocket连接到' ws:// localhost:3000 / websocket'失败:WebSocket握手期间出错:意外的响应代码:404

其他所有内容均按照第一步指南

的建议进行

events.rb

subscribe :test, :to => ChatServerController, :with_method => :test

控制器/ chat_server_controller.rb

class ChatServerController < WebsocketRails::BaseController
  def initialize_session
    # perform application setup here
    controller_store[:message_count] = 0
  end

  def test
      puts 'Hello'
  end
end

1 个答案:

答案 0 :(得分:1)

有一个涉及gem依赖posted on github的潜在解决方案。但是,如果你看看repo(151个开放问题,27个拉取请求),它看起来并不像这个宝石被积极维护。 2016年关闭的问题正由打开它们的同一个人关闭。

您可以通过包含第二个参数设置为false来使您的应用程序按forcing websockets to use http工作。

var Dispatcher = new WebSocketRails('localhost:3000/websocket', false);

我担心使用http轮询的可扩展性以及websocket-rails gem的未来。对我来说,似乎最好的方法是升级到Rails 5并使用Action Cable