如何减少每个客户端的时间差?
一个项目: 每个客户端都有一个canvas,上面执行动画,当server传来参数(初始位置以及速度),动画便可以开始。 现在遇到一个问题,就是每个客户端开始执行动画的时间有一点的时间差,但这一点的差距,到动画运行得一两分钟之后便变得很明显。图形的位置非常不一致。 参数这服务器是这样传递的: socket.broadcast.emit(‘init’, initData); socket.emit(‘init’, initData); 在客户端,这些data会被放入动画函数。
我不知道,问题是否出在每个客户端接收到信息的时间差? 请问如何减少?
谢谢。
4 回复
这个你原因还是比较多的:
- 使用不同的电脑 看看他们接受数据花在网络上的时间
- 使用不同的浏览器 看看是不是不同浏览器本身绘图的性能差异
这个没什么好的办法
这是开发游戏中经常碰到的,网络等因素导致各个客户端动画不一致。网上运动补偿的方法一搜一大堆……云风之前就写过一篇文章:http://blog.codingnow.com/2012/03/dev_note_12.html 。
先算一下客户端和服务端的时间差值。 server 发送的时候计算-这个差值.