【发布时间】:2014-12-29 15:06:50
【问题描述】:
我正在尝试部署一个通过 Thin 提供服务的 Ruby on Rails 应用程序。该应用程序使用 websockets,特别是 websocket-rails 库。
这在本地有效。尝试部署时,它不起作用。 websocket 服务器不是独立的应用程序 - websockets 只是主应用程序服务器的一部分。当我的 javascript 创建到网络服务器的连接时,我在 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 的请求如下:
我想我错过了一个简单的配置,但必须发现它可能是什么。有什么想法吗?
谢谢!
【问题讨论】:
-
你用的是 nginx 吗?也许那里发生了某种配置问题。如果您是:stackoverflow.com/questions/15992145/…,这个问题可能会有所帮助
-
我正在使用 nginx,但我没有设置反向代理。 websockets 不是独立的,它们是基础应用程序的一部分。不过,我将进一步研究我的 nginx 配置。谢谢。
-
我还使用 nginx 作为代理来使用 websocket-rails 进行瘦身,我必须为 websocket 添加一个条目。
标签: ruby-on-rails websocket thin