Node.js 检查游戏状态并向连接的客户端发送套接字的正确方法是什么?

Node.js 检查游戏状态并向连接的客户端发送套接字的正确方法是什么?,node.js,sockets,redis,game-loop,Node.js,Sockets,Redis,Game Loop,我正在构建一个社交多玩家实时游戏,我正在考虑实现什么样的体系结构,以便跟踪状态游戏并将正确的套接字发送给连接的玩家 我的游戏有4种状态回合开始,检查玩家,匹配状态,回合结果。这些状态有超时10秒,并且在房间里有玩家时重复循环 我的状态如下所示: var stateDoc = { type: 'round start', uid: uid, timeout: 10000 }; 我的问题是我应该如何存储状态并更新这些状态 您可以有一个名为game的json数据。您可以在redis列表中

我正在构建一个社交多玩家实时游戏,我正在考虑实现什么样的体系结构,以便跟踪状态游戏并将正确的套接字发送给连接的玩家

我的游戏有4种状态
回合开始
检查玩家
匹配状态
回合结果
。这些状态有超时
10秒
,并且在房间里有玩家时重复循环

我的状态如下所示:

var stateDoc = {
  type: 'round start',
  uid: uid,
  timeout: 10000
};
我的问题是我应该如何存储状态并更新这些状态

  • 您可以有一个名为game的json数据。您可以在redis列表中将其存储为二进制或json。如果将其作为json传递,则可以在之前和之后执行toJson和fromJson

    //比赛次数 艾伦小游戏

    //阅读游戏#0
    林德克斯小游戏0

    //在列表末尾写游戏
    RPUSH游戏“{…}” RPUSH小游戏。回合开始1

  • 你最好使用5个列表:每个州一个,所有游戏一个 状态列表(例如games.roundstart)将仅存储此状态游戏的密钥

  • 更新逻辑应该存储在服务器端(而不是redis中) 在更新过程中,您将查找每个列表,并根据这些列表执行操作