Веб-сокеты с Rails (Puma) — ошибка во время рукопожатия WebSocket: неожиданный код ответа: 200

Я пытаюсь использовать веб-сокет в своем приложении Rails4.1.

Вот несколько соответствующих фрагментов кода:

Gemfile:

gem 'websocket-rails'
gem 'puma'

разработка.рб

 config.middleware.delete Rack::Lock

Я запускаю сервер локально как:

bundle exec puma -p 3000

В консоли хрома я вижу ошибку подключения:

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

Я попытался добавить следующее в соответствии с Веб-сокеты не работают в моем приложении Rails, когда я работаю на сервере Unicorn, но работают на тонком сервере, но это не помогло

инициализаторы/eventmachine.rb

Thread.new { EventMachine.run } unless EventMachine.reactor_running? && EventMachine.reactor_thread.alive

person codeObserver    schedule 15.08.2015    source источник
comment
причина для минуса?   -  person codeObserver    schedule 16.08.2015
comment
Не мой отрицательный голос, но я бы посоветовал не удалять «Rack :: Lock», если вы не знаете, что делаете.   -  person XA21X    schedule 16.08.2015


Ответы (1)


Попробуйте это в своей консоли:

window.dispatcher = new WebSocketRails window.document.location.host + '/websocket'

Остальное, что вы хотите сделать, вы настраиваете в файле config/events.rb и любых контроллерах, которые вы используете для обработки событий.

person blnc    schedule 15.08.2015
comment
Этот. Гем Websocket-Rails жестко закодирован для используйте маршрут '/websocket'. - person XA21X; 16.08.2015