Chrome中的"意外响应代码:503".也许与heroku上的socket.io有关?

Ale*_*xis 14 heroku node.js google-chrome-devtools socket.io

我在Heroku上使用socket.io和node.js.一切似乎都有效.但是,在Chrome开发工具栏中,我知道了Unexpected response code: 503.有谁知道这可能意味着什么?我应该关注它吗?它会在浏览器中占用内存吗?如果是这样,我可以抑制它吗?

Som*_*ens 26

Heroku"不支持"Cedar堆栈上的websockets (他们什么时候不知道)更新:见下文. 他们建议在Socket.io实现中添加以下代码:

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

原因是Heroku在你的dynos上添加了一个路由层.您的代码将上执行一个服务器,但它的不确定性哪个服务器时,它会.因此,WebSockets无法将数据发送到"正确"的服务器.Socket.IO将降级为长轮询,通过路由层保持连接活动,确保事件将在正确的服务器上执行.

更新:Heroku WebSockets现已公开测试版!您可以通过heroku labs:enable websockets -a myapp在app目录中执行来为应用添加WS支持.

  • 也得到了503 (8认同)
  • 我尝试使用更新的答案.但是,当我这样做时,我仍然会收到503错误.我正在使用自定义域并已配置DNS以重定向到ws:// (4认同)