Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何在NodeJS中使用套接字(socket.io)查找客户端的响应时间(延迟)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用NodeJS创建一个多人游戏,我想同步客户端之间的动作。

在客户端和服务器之间找到延迟(请求返回客户端的时间)的最佳方法是什么?

我的第一个想法是,客户端#1可以发送一个时间戳是请求,所以当客户端#2将收到客户端#1的动作时,他将调整是动作速度来消除请求的延迟。
但是问题是,也许两个客户端的系统日期时间不一样,所以不可能有人知道客户端#1的请求的卷轴延迟。

一个解决方案是使用服务器的时间戳,但现在如何知道客户端的延迟?

解决方法@H_419_18@
我将假设您正在使用WebSockets或 Socket.IO,因为您正在实施延迟重要的游戏(并且您已将其标记为这样)。

我会认为服务器应该衡量和跟踪每个客户端。

您可能想要实现服务器可以请求客户端的某种ping操作。一旦客户端收到请求,它会将响应发送回服务器。服务器然后除以2,并更新该客户端的延迟。您可能希望服务器定期与每个客户端进行此操作,并且可能会对最后几个客户端进行平均排列,这样您就不会从突然但临时的峰值中获取奇怪的行为。

然后,当有一个客户端需要发送(或广播)到其他客户端的消息时,服务器可以将client1的延迟添加到client2的延迟,并将其作为消息的一部分作为延迟偏移量传达给client2。 client2会知道client1上的事件发生在很多毫秒之前。

在服务器上执行此操作的其他原因是某些浏览器Javascript时间戳不正确:http://ejohn.org/blog/accuracy-of-javascript-time/.我怀疑node.js时间戳与V8(这是少数几个准确的时间戳)一样准确(或更多)。

大佬总结

以上是大佬教程为你收集整理的node.js – 如何在NodeJS中使用套接字(socket.io)查找客户端的响应时间(延迟)?全部内容,希望文章能够帮你解决node.js – 如何在NodeJS中使用套接字(socket.io)查找客户端的响应时间(延迟)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。