基于时间戳的消息机制.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于时间戳的消息机制

基于时间戳的消息机制时间作者说明2013-02-28张乃盛创建文档概述本文主要描述了因dashfire需求基于时间戳的消息同步,参考RakNet的时间戳的实现提出我们基本的思路和实现案。RakNet参考根据1018的介绍,RakNet内部支持了Ping和带时间戳的消息,以下做了一些简单的分析。PingRackNet提供两种Ping功能,一种是内部自动进行的Ping功能,它用来支持带timestamp的消息等其它功能,一种是提供对外的Ping的API。内部自动进行的Ping每隔一定的时间它会发送一次消息计算Ping值。每次得到的Ping值会记录下来以便后边根据一定的算法得到较准确的Ping值。Ping值计算受消息的接收和发送过程和网络传输的影响,为了尽量降低消息接收和发送的时间的影响,Ping消息一般需要立即发送和接收到后立即处理。Ping功能的准确性影响到消息中时间戳的准确性,据说RakNet的消息时间戳精度是比较高的,没有实测。timestampRackNet的消息可以带上时间戳。它的实现主要是建立在Ping的基础上。RakNet内部保存了网络的Ping值。A在1000的时刻时B的时刻为3000。A发送带时间戳的消息时会加入本地的时间戳。B接收到该消息后会根据消息的时间和当前Ping值算出A发送消息的本地的相对时间,并将该消息的时间戳替换为本地的相对时间。DashFire目的使用带时间戳的消息的目的主要是: 为了使多个客户端在不同的延迟的情况下表现一致,具体的是为了预测的实现,动作的加速,并保证客户端逻辑的正确性。流程根据综合情况,Dashfire主要是在服务器加时间戳,客户端根据服务器时间戳和Ping值情况推算服务器时间。主要流程如下图:工作当前的网络库已经提供了Ping的功能,还需要做的工作有:需要实现Ping值的收集和时间戳推算算法。该算法需要在IOManager层实现。实现客户端的各功能的预测或加速风险 使用当前这种方式的风险:1. Ping值计算的精确性的风险。2. 增大客户端预测或加速等的逻辑复杂度。

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档