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 и любых контроллерах, которые вы используете для обработки событий.

Другие вопросы по тегам