Heroku Node.js WebSocket 服务器

Posted

技术标签:

【中文标题】Heroku Node.js WebSocket 服务器【英文标题】:Heroku Node.js WebSocket Server 【发布时间】:2014-04-07 22:30:47 【问题描述】:

Heroku 开发中心文章 Using WebSockets on Heroku with Node.js 解释了如何部署使用 Express 的 Node.js Websocket Test demo application。

但是,我正在部署一个不使用 Express 的 Node.js WebSocket chat server。

当我尝试使用wscat -c ws://my-app.herokuapp.com/1 从终端连接时,我得到error: Error: unexpected server response (503)。而且,heroku logs 返回code=H14 desc="No web processes running"

为什么?我该如何解决这个问题?

注意:我的Procfile 是正确的:web: node server.js

【问题讨论】:

【参考方案1】:

解决方案:删除并重新创建应用

我把Node.js WebSocket chat server的第一行改成了:

var webSocketServer = new (require('ws')).Server(
      server: require('http').createServer(function (request, response) 
        response.end()
      ).listen(process.env.PORT || 5000)
    ),

还是不行。

然后,我删除并重新创建了 Heroku 应用程序并进行了部署。工作。

然后,我把第一行改回:

var webSocketServer = new (require('ws')).Server(port: (process.env.PORT || 5000)),

并重新部署。仍然有效!

【讨论】:

【参考方案2】:

您能否与curl -vD 联系以获取有关您的服务器正在发送哪些标头的详细信息?

【讨论】:

以上是关于Heroku Node.js WebSocket 服务器的主要内容,如果未能解决你的问题,请参考以下文章

与 Hasura 的 WebSocket 连接不适用于 Node.js 上的 ApolloClient v3

无法创建到 Node.js socket.io 服务器的跨域 websocket 连接

为啥我的 websocket 在几分钟后关闭?

使用端口 80 的 AWS Elastic Beanstalk 上的 WebSocket 问题

websocket连接正在自动关闭

Heroku Node.js 版本 16