Websockets with Rails(Puma) - ошибка во время рукопожатия WebSocket: неожиданный код ответа: 200
Я пытаюсь использовать websocket в моем приложении Rails4.1
Вот некоторые соответствующие фрагменты кода:
Gemfile:
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?
Update1
Я попытался добавить следующее в соответствии с Websockets, не работает в моем приложении Rails, когда я работаю на сервере Unicorn, но работает на тонком сервере, но это не помогло
Инициализаторы /eventmachine.rb
Thread.new { EventMachine.run } unless EventMachine.reactor_running? && EventMachine.reactor_thread.alive
1 ответ
Решение
Попробуйте это в вашей консоли:
window.dispatcher = new WebSocketRails window.document.location.host + '/websocket'
Остальное, что вы хотите сделать, настраивается в файле config/events.rb и любых контроллерах, которые вы используете для обработки событий.