什么时候使用像Redis这样的Socket IO适配器?

qmelpv7a  于 2022-09-21  发布在  Redis
关注(0)|答案(1)|浏览(175)

Socket.IO documentation表示:
当扩展到多个Socket.IO服务器时,您需要用另一个实现替换默认的内存中适配器,以便将事件正确地路由到所有客户端。

这是否意味着我们在扩展到多台服务器时需要使用像Redis**这样的适配器?

我计划实施一个聊天应用程序与2000在线用户。如果我只有一台服务器,可以使用javascript array保留在线用户吗?

ovfsdjhp

ovfsdjhp1#

这是否意味着我们只有在扩展到多台服务器时才需要使用像Redis这样的适配器?

当您希望在连接到同一台服务器的不同工作进程的用户之间发送套接字消息,或者希望使用.Broadcast()将消息发送给一群用户时,Redis适配器非常有用。我不认为使用它在服务器之间路由消息是个好主意。事实上,Redis适配器是基于发布/订阅机制的,不应该使用Redis集群进行扩展,因此一旦消息速率超过~100k/s就毫无用处。

我计划实现一个有2000个在线用户的聊天应用程序。如果我只有一台服务器,可以使用Java脚本数组来容纳在线用户吗?

永远不推荐使用javascript全局变量。此外,我不知道单个Worker是否可以支持2k个用户,无论如何,您应该有一个启用了粘滞会话的NodeJS集群,所以,您应该有一个适配器(如果大多数消息是1-1而不是1-n,您可以通过创建一个名为channel:userId的发布/订阅通道并监听它来创建自己)

相关问题