【问题标题】:Rails websocket issue on Cloud66Cloud66上的Rails websocket问题
【发布时间】:2013-10-26 20:09:39
【问题描述】:

我使用 Tubesock gem 为我的应用程序 Rails 4 添加 websockets 支持。在本地主机上一切正常,但通过 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

routes.rb:

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

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

【问题讨论】:

  • 如果您对此有任何其他问题,请随时联系支持人员 - 我们很乐意为您提供帮助。免责声明:我为 Cloud 66 工作。

标签: ruby-on-rails-4 websocket rake cloud66


【解决方案1】:

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

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

【讨论】:

  • 这在没有负载平衡器的情况下会有所帮助。我为堆栈启用了负载均衡器,并再次收到 503。好吧,我会尝试切换到Faye什么的。看起来他们对那件事有很好的支持。
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
相关资源
最近更新 更多