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走了!