使用 Rails(Puma) 的 Websockets - WebSocket 握手期间出错:意外的响应代码:200
Websockets with Rails(Puma) - Error during WebSocket handshake: Unexpected response code: 200
我正在尝试在我的 Rails4.1 应用程序中使用 websocket
以下是一些相关的代码片段:
宝石文件:
gem 'websocket-rails'
gem 'puma'
development.rb
config.middleware.delete Rack::Lock
我在本地启动服务器为:
bundle exec puma -p 3000
在 chrome 控制台中,我看到一个连接错误:
new WebSocketRails('localhost:3000/post/hello', true);
WebSocket connection to 'ws://localhost:3000/post/hello' failed: Error during WebSocket handshake: Unexpected response code: 200
任何人都可以帮助我在 Rails 中本地使用网络套接字吗?
更新1
我尝试按照 Websockets not working in my Rails app when I run on Unicorn server, but works on a Thin server 添加以下内容,但没有帮助
initializers/eventmachine.rb
Thread.new { EventMachine.run } unless EventMachine.reactor_running? && EventMachine.reactor_thread.alive
在您的控制台中试试这个:
window.dispatcher = new WebSocketRails window.document.location.host + '/websocket'
您可以在 config/events.rb 文件中配置您想要执行的其余操作,以及您用来处理事件的任何控制器
我正在尝试在我的 Rails4.1 应用程序中使用 websocket
以下是一些相关的代码片段:
宝石文件:
gem 'websocket-rails'
gem 'puma'
development.rb
config.middleware.delete Rack::Lock
我在本地启动服务器为:
bundle exec puma -p 3000
在 chrome 控制台中,我看到一个连接错误:
new WebSocketRails('localhost:3000/post/hello', true);
WebSocket connection to 'ws://localhost:3000/post/hello' failed: Error during WebSocket handshake: Unexpected response code: 200
任何人都可以帮助我在 Rails 中本地使用网络套接字吗?
更新1
我尝试按照 Websockets not working in my Rails app when I run on Unicorn server, but works on a Thin server 添加以下内容,但没有帮助
initializers/eventmachine.rb
Thread.new { EventMachine.run } unless EventMachine.reactor_running? && EventMachine.reactor_thread.alive
在您的控制台中试试这个:
window.dispatcher = new WebSocketRails window.document.location.host + '/websocket'
您可以在 config/events.rb 文件中配置您想要执行的其余操作,以及您用来处理事件的任何控制器