使用Websockets部署Thin

时间:2014-11-03 00:22:43

标签: ruby-on-rails websocket thin

我正在尝试部署通过Thin提供的Ruby on Rails应用程序。该应用程序使用websockets,特别是websocket-rails库。

这适用于本地。尝试部署时,它不起作用。 websocket服务器是一个独立的应用程序 - websockets只是主应用程序服务器的一部分。当我的javascript创建与Web服务器的连接时,我在production.log中看到以下内容:

[2014-11-02T23:38:19.942236 #9154]  INFO -- : Started GET "/websocket" for <IP ADDRESS> at 2014-11-02 23:38:19 +0000

在production.log中没有与websocket请求相关的其他内容。在我的websocket_rails.log中,我看到:

[32mConnectionManager^[[0m] Connection opened: #<Connection::b2b0d6b0e3faa4432b0c>
[32mConnectionManager^[[0m] Connection closed: #<Connection::b2b0d6b0e3faa4432b0c>

显示请求确实已到达websocket代码,并且连接已立即关闭。在浏览器中,我看到了

WebSocket connection to 'ws:/<DOMAIN>/websocket' failed: Error during WebSocket handshake:  Unexpected response code: 200

我发现有关此错误的信息非常有限。有没有简单的方法来调试这些错误?检查Chrome Inspector中的数据会显示以下对/ websocket的请求: enter image description here

我想我错过了一个简单的配置,但必须发现它可能是什么。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我在我的本地计算机上运行了一个瘦服务器来运行应用程序,当我部署到生产环境时,它无法运行。我不得不在Heroku上设置一个单独的应用程序,只是为了运行一个单独的服务器。也许这会对你有用吗?