Chrome中的“意外回复代码:503”。 也许与heroku上的socket.io有关?

我在Heroku上使用socket.io和node.js。 一切似乎工作。 但是,在Chrome开发吧,我得到Unexpected response code: 503 。 有谁知道这可能意味着什么? 我应该关心它吗? 它会占用浏览器的内存吗? 如果是的话,我可以压制它吗?

Heroku“不支持”Cedar协议栈上的websockets 更新时间不在话下 。 他们build议将以下代码添加到您的Socket.io实现中:

 // assuming io is the Socket.IO server object io.configure(function () { io.set("transports", ["xhr-polling"]); io.set("polling duration", 10); }); 

原因是Heroku在您的dynos上添加了一个路由层。 你的代码将在一个服务器上执行,但是它对于哪个服务器是不确定的。 因此,WebSockets不能发送数据到“正确的”服务器。 Socket.IO将降级到长轮询,这将通过路由层使连接保持活动状态,确保事件将在正确的服务器上执行。

更新: Heroku WebSockets现在在公共testing版! 您可以通过执行heroku labs:enable websockets -a myapp来将WS支持添加到您的应用程序中heroku labs:enable websockets -a myapp在您的应用程序目录中heroku labs:enable websockets -a myapp

对于来自谷歌2016年的人。

Heroku websockets现在被支持,不需要打开它们。 Heroku上的WebSockets

确保在Heroku上查看你的日志。 我注意到铬错误发生在检查日志后,事实certificate,我的Heroku应用程序已经崩溃。 我的代码中有一个错误导致它没有响应(根本不是socket.io)

固定的代码和503走了!