我正在使用node.js和socket.io构建一个回合制文本游戏。每个回合都有一个超时时间,如果时间到了,玩家就会失去回合并且下一个玩家接替进行游戏。我正在使用
问题是我不知道如何在多个实例甚至多个服务器上扩展它。据我所知,如果我设置了一个超时,我只能在同一实例中清除它。因此,如果一个玩家输掉了比赛,例如,在其他玩家的回合中超时将被更新,但是这个新玩家无法访问计时器对象来清除它,因为它正在第一个玩家的实例上运行。
我看了看Redis的发布/订阅功能(无论如何我都要使用它),但我没有找到关于定时事件或延迟发布的任何内容。
简而言之,如何保持实例/服务器独立的计时器?
setTimeout
函数,正如我在另一个问题中所说的那样。问题是我不知道如何在多个实例甚至多个服务器上扩展它。据我所知,如果我设置了一个超时,我只能在同一实例中清除它。因此,如果一个玩家输掉了比赛,例如,在其他玩家的回合中超时将被更新,但是这个新玩家无法访问计时器对象来清除它,因为它正在第一个玩家的实例上运行。
我看了看Redis的发布/订阅功能(无论如何我都要使用它),但我没有找到关于定时事件或延迟发布的任何内容。
简而言之,如何保持实例/服务器独立的计时器?