【发布时间】:2019-12-29 13:54:39
【问题描述】:
我使用 socket.io 和 node js 创建了一个小型服务器,并在之前部署在 heroku 中。我很容易让客户端使用 wss/ws 协议连接到服务器,但是当我也部署我的应用程序 AWS 时,客户端没有连接。我在客户端调试了应用程序,但它只是没有连接到服务器。我错过了什么?是否需要执行额外的步骤才能使其正常工作?
谢谢。
【问题讨论】:
-
应用LB不支持WS协议。你可以使用socket.io。这里github.com/ngrt/simpleChatApp 基于socket.io,可以在负载均衡器后面的http和https上正常工作,只需启用粘性会话。你可以为 WS 做 NLB。
-
ALB 支持 ws,如果存在 https 侦听器,它也可以支持 wss,但您似乎没有使用 ALB,而是直接连接到运行 ws 的实例,请检查服务器是否正在侦听端口你提到了 ws。
-
@JamesDean 你是对的。我必须添加负载均衡器,并且必须在我的项目中包含一些配置文件的 .ebextensions 文件夹。还添加了 TCP 侦听器。我让它工作了。谢谢。
标签: node.js amazon-web-services websocket socket.io