在客户端/服务器之间同步数据

时间:2012-10-05 01:48:20

标签: javascript html5 node.js architecture socket.io

我正在制作一个简单的html5游戏用于学习目的。我希望尽可能通过线路发送最小数据以保持同步。当我在客户端和服务器之间发送游戏状态时,我只想发送自上次更新以来在游戏状态中发生的变化,以节省带宽/延迟。

我能想到的唯一方法是在从远程源接收到的每个更新上创建游戏状态对象的“快照”或副本,然后在本地操作游戏状态并需要发送出去到远程源循环通过游戏状态对象将每个值与临时游戏状态进行比较并仅发送差异......

这是最有效的方法吗?

/****************************/
/**** Current game state ****/
gameState = {

    playerOneID: 'XXX-XXX-XXX-XXX',
    playerTwoID: 'YYY-YYY-YYY-YYY',
    elapsedTime: 00007,
    myVariable: 'abcd1234'    
}    

/*******************************************/
/**** saves game state from last update recieved ****/
tmpGameState = {

    playerOneID: 'XXX-XXX-XXX-XXX',
    playerTwoID: 'YYY-YYY-YYY-YYY',
    elapsedTime: 00003,
    myVariable: 'abc123'    
}    

1 个答案:

答案 0 :(得分:0)

大多数网络至少将数据发送到最多1024字节的数据包,至少在计划离开时。