Rails проблема с websocket на Cloud66
Я использую с tubeock gem для добавления поддержки websockets в мое приложение Rails 4. Все отлично работает на локальном хосте, но после развертывания в DigitalOcean через Cloud66 я получаю сообщение об ошибке при подключении к нему с http://www.websocket.org/echo.html:
WebSocket connection to 'ws://example.development.c66.me/live?encoding=text' failed: Unexpected response code: 503
Единственная разница в конфигурации заключается в том, что я использую PUMA сервер локально, а Passenger - в стеке.
live_controller.rb
class LiveController < ApplicationController
include Tubesock::Hijack
def index
hijack do |tubesock|
tubesock.onopen do
tubesock.send_data "Hello, stranger!"
end
tubesock.onmessage do |data|
tubesock.send_data "You said: #{data}"
end
end
end
end
routes.rb:
...
get "/live" => "live#index", as: "live"
...
Что может быть корнем этой проблемы?
1 ответ
Решение
Вы пробовали использовать Unicorn на производственной стороне? ( http://help.cloud66.com/web-server/custom-webserver.html)
Это может помочь, так как при использовании Unicorn версия и конфигурация nginx, развернутого в Cloud 66, работают с WebSockets.