1

我使用 Tubesock gem 为我的应用程序 Rails 4 添加 websockets 支持。在 localhost 上一切正常,但是通过 Cloud66 部署到 DigitalOcean 后,从http://www.websocket.org/echo 连接到它时出现错误。 html

WebSocket connection to 'ws://example.development.c66.me/live?encoding=text' failed: Unexpected response code: 503 

唯一不同的配置是我在本地使用 PUMA 服务器和堆栈中的乘客。

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

路线.rb:

...
get "/live" => "live#index", as: "live"
...

这个问题的根源可能是什么?

4

1 回答 1

1

您是否尝试过在生产端使用 Unicorn?( http://help.cloud66.com/web-server/custom-webserver.html )

这可能会有所帮助,因为在使用 Unicorn 时,Cloud 66 部署的 nginx 的版本和配置可与 WebSockets 一起使用。

于 2013-10-18T15:12:56.823 回答