我安装了' 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
答案 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。