我试图弄清楚 websockets 如何在 Nodejs/PM2 集群中工作。
我刚刚通过使用 PM2 启动 4 个子进程进行了一个实验,然后从客户端我向所有 4 个套接字服务器(每个子进程中运行 1 个 ws 服务器)发送了多个 webocket 消息。我没想到的一件事是 Node 能够确定套接字属于哪个进程,因此客户端发送的每条消息都由正确的子进程进行控制台记录。
那么这种行为是由 Nodejs 在内部由集群模块管理的吗?这似乎也是自 Node 12 以来的一个新功能?我可能错了...
代码参考(ws模块使用tsl):https ://github.com/websockets/ws/blob/master/lib/websocket.js#L663
PS:在写答案之前,请检查我写给其他人的评论...