Heroku Node.js WebSocket服务器错误:'连接'标头值不是'升级':升级

时间:2014-05-12 00:07:24

标签: javascript node.js heroku websocket

我正在测试在Heroku上使用WebSockets的Node.js应用程序,并且我一直遇到这个错误:

客户:WebSocket connection to 'ws://myapp.herokuapp.com/' failed: Error during WebSocket handshake: Unexpected response code: 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

编辑:我尝试删除该应用并使用其他名称重新创建,现在我收到了此错误:

客户:WebSocket connection to 'ws://myapp2.herokuapp.com/' failed: Error during WebSocket handshake: 'Connection' header value is not 'Upgrade': Upgrade

服务器: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

有谁知道造成这种情况的原因是什么?

提前致谢。

2 个答案:

答案 0 :(得分:3)

在与Heroku支持人员聊天5天后,我已经解决了这个问题。的种类。 Heroku websockets只是不起作用。我尝试了一切。所以我最终决定尝试OpenShift。我有我的应用程序(相同的代码,不在Heroku上工作)完美地在OpenShift上运行,只需2小时即可使用websockets和所有内容。

我强烈推荐OpenShift给任何正在寻找使用WebSockets托管的免费且稳定的Node.js的人。它们的CLI和Heroku的一样容易使用,它们可以免费为您提供3个齿轮(每个512MB)!

以下是在OpenShift上使用Node.js WebSockets的一些提示:

将这些变量用于服务器 ip和port: 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连接)

来源:https://www.openshift.com/blogs/paas-websockets

答案 1 :(得分:-1)

在我的情况下,它是由MongoLab更新并与我的moongoose版本不同步造成的。更新moongoose为我解决了。