请帮助选择聊天室计时器的解决方案(nodeJS + socket.io + redis)。
创建了多个房间,每个房间都有一个 HOST,即该房间的管理员,每个房间将有 500 名成员。任何时候都可以有'n'个房间't'。一个房间将在创建 1 小时后被摧毁。
Node server => 处理来自redis的房间成员相关数据,并在一段时间后在每个房间广播。这个间隔(即何时广播)由一个数组决定,称之为timerArrayForRoom1
. 该数组保存广播数据的时间(以秒为单位)。这个阵列对于每个房间都是不同的。
现在,两种方法 -
在 nodeJS 中使用 setInterval() 以便它会在一段时间后调用它的广播方法。每个房间都有其单独的间隔对象。
给
timerArrayForRoom1
房间的主机,让主机在几秒钟后根据计时器数组触发一个事件。即在客户端使用 setinterval()。节点服务器将对该事件采取行动。
第一种方法是独立于主机的,但它涉及在 NodeJS 中使用 setInterval()。
哪个更好实施,以便服务器能够支持 1000 个房间,其中有 500 个成员,同时运行和广播?
哪个更可靠?(当我读到 setInterval() 并不能保证它调用函数的时间)
还是有其他方法?
主机/管理员将是不同的设备,并且每个房间都有一个,因此第二种方法将在一定程度上平衡服务器负载。