我正在测试在 Heroku 上使用 WebSockets 的 Node.js 应用程序,但我一直遇到此错误:
客户端:与“ws://myapp.herokuapp.com/”的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:503
服务器:2014-05-11T23:57:15.710087+00:00 heroku[router]: at=error code=H23 desc="Endpoint misconfigured"method=GET path=/host=myapp.herokuapp. com request_id=a874df22-4a1a-44fb-bcc5-2473bf1e6370 fwd="151.35.127.210"dyno=connect=service=status=503 bytes=
我启用了 Heroku labs websockets,程序使用 process.env.PORT
。
编辑:我尝试删除应用程序并使用不同的名称重新创建它,但现在我收到此错误:
客户端:与“ws://myapp2.herokuapp.com/”的 WebSocket 连接失败:WebSocket 握手期间出错:“连接” header 值不是“升级”:升级
服务器:2014-05-13T23:27:52.443504+00:00 heroku[router]: at=info method=GET path=/host=myapp2.herokuapp.com request_id=c83b94a6-04ef-42cf- 9837-c4bda8a85c14 fwd="151.35.127.210"dyno=web.1 connect=26 service=1029 status=101 bytes=681
有人知道是什么原因造成的吗?
提前致谢。
最佳答案
在与 Heroku 支持聊天 5 天后,我解决了这个问题。的种类。 Heroku websockets 无法正常工作。我尝试了一切。所以我最终决定尝试 OpenShift。我的应用程序(相同的代码在 Heroku 上不起作用)在 OpenShift 上完美运行,使用 websockets 和一切,只用了 2 小时。
我强烈推荐OpenShift任何正在寻找免费和稳定的 Node.js 托管 WebSockets 的人。他们的 CLI 与 Heroku 一样易于使用,并且免费提供 3 个装备(每个 512MB)!
以下是在 OpenShift 上使用 Node.js WebSockets 的一些技巧:
将这些变量用于服务器 ip 和端口:
var ip = process.env.OPENSHIFT_NODEJS_IP || “127.0.0.1”;
var port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
但是您的 websocket 客户端 应该连接到:
ws://app-domain.rhcloud.com:8000
或
wss://app-domain.rhcloud.com:8443
(用于安全 https 连接)
关于javascript - Heroku Node.js WebSocket 服务器错误 : 'Connection' header value is not 'Upgrade' : Upgrade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599281/