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.

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