gpt4 book ai didi

node.js - 跨多个服务器持久化websocket连接对象

转载 作者:行者123 更新时间:2023-12-03 11:59:16 24 4
gpt4 key购买 nike

我在服务器上使用websocket库建立套接字连接。

https://github.com/websockets/ws

我在群集中有多个服务器,我想知道如何在群集中的另一台服务器上使用相同的套接字连接对象。

我也想知道什么是Webchat实现 native websocket或socket.io的最佳选择

最佳答案

您不能在多个服务器上使用相同的实际套接字对象。套接字对象表示客户端和一个物理服务器进程之间的套接字连接。可以构建一个虚拟套接字对象,该对象将知道其连接在哪台服务器上,向该服务器发送一条消息,然后通过实际套接字从该另一台服务器发送出去。

socket.io/redis adapter是执行此操作的一种此类虚拟方法。您设置了一个node.js集群,并将redis适配器与socket.io一起使用。它使用基于中央Redis的存储来跟踪每个物理连接是哪个服务进程。然后,当您想从任何服务器进程向特定客户端发送消息时,可以通过socket.io发送该消息,然后在连接该套接字的redis数据库中为您查找消息,联系该实际服务器并询问它通过当前在其他服务器进程上存在的socket.io连接将消息发送到该特定客户端。同样,您可以广播到套接字组,并且无论消息连接到哪个实际服务器,它都将在确保消息到达客户端的情况下完成所有工作。

您肯定可以为简单的webSocket连接构建类似的东西,而其他人已经构建了类似的东西。对于野外存在的内容,我还不够熟悉,无法为普通的webSocket提供任何建议。如果要使用简单的webSocket,可以在水平扩展webSocket服务器上使用plenty of articles,您可以在Google上找到它并阅读以开始使用。

关于node.js - 跨多个服务器持久化websocket连接对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47447529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com