我正在尝试部署通过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的请求:
我想我错过了一个简单的配置,但必须发现它可能是什么。有什么想法吗?
谢谢!
答案 0 :(得分:0)
我在我的本地计算机上运行了一个瘦服务器来运行应用程序,当我部署到生产环境时,它无法运行。我不得不在Heroku上设置一个单独的应用程序,只是为了运行一个单独的服务器。也许这会对你有用吗?