如何减少每个客户端的时间差?
发布于 11 年前 作者 kakaren 5119 次浏览 最后一次编辑是 8 年前

一个项目: 每个客户端都有一个canvas,上面执行动画,当server传来参数(初始位置以及速度),动画便可以开始。 现在遇到一个问题,就是每个客户端开始执行动画的时间有一点的时间差,但这一点的差距,到动画运行得一两分钟之后便变得很明显。图形的位置非常不一致。 参数这服务器是这样传递的: socket.broadcast.emit(‘init’, initData); socket.emit(‘init’, initData); 在客户端,这些data会被放入动画函数。

我不知道,问题是否出在每个客户端接收到信息的时间差? 请问如何减少?

谢谢。

4 回复

这个你原因还是比较多的:

  • 使用不同的电脑 看看他们接受数据花在网络上的时间
  • 使用不同的浏览器 看看是不是不同浏览器本身绘图的性能差异

这个没什么好的办法

这是开发游戏中经常碰到的,网络等因素导致各个客户端动画不一致。网上运动补偿的方法一搜一大堆……云风之前就写过一篇文章:http://blog.codingnow.com/2012/03/dev_note_12.html

先算一下客户端和服务端的时间差值。 server 发送的时候计算-这个差值.

回到顶部