socket.io跨套接字同步状态

时间:2013-05-11 13:17:09

标签: node.js socket.io

我正在创建一个棋盘游戏,其中2个玩家可以玩,其他人可以是观众(观众) 所以,当观众加入时,他会获得游戏的当前状态,从那时起,他只获得每个玩家所做的移动(显然可以保存数据)。

我的问题是:当观众首次从服务器获取游戏状态时,如何确保它实际上已同步?我真的不知道何时他将获得状态,并且在某些事情发生变化之前它可能只是一小部分,然后是他为每一个动作获得的Delta制作没有意义。

我应该使用某种内部?你会建议什么来确保一切都同步?

1 个答案:

答案 0 :(得分:1)

假设您的状态是用户操作的结果,您可以将状态存储在具有自动增量整数ID的格式表中。

在移动事件中,您传递新ID和以前的ID。如果接收者的最大ID小于先前的ID,您就会向服务器询问缺失的操作。