1

我安装了“websocket-rails”gem,在完成默认配置后,我刚刚创建了一个 JS 调度程序,但在 chrome 控制台上出现 404 错误。

这是我的 JS:

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

这是我收到的信息:

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

其他一切都按照第一步指南的建议

事件.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
4

1 回答 1

1

有一个潜在的解决方案涉及发布在 github 上的 gem 依赖项。但是,如果您查看 repo(151 个未解决的问题,27 个拉取请求),看起来这个 gem 并没有被积极维护。2016 年已关闭的问题正在由打开它们的同一个人关闭。

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

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

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

于 2016-05-29T15:50:36.127 回答