(007)Mirror 时间戳的批处理

文章目录

批处理

为了尽量减少带宽和传输调用,将需要的传输的多个消息, 合并到一个 MTU (1200byte左右)报文中。通过 Transport.GetBatchThreshold() 获取该报文的长度。

时间戳

1.在每一个 MTU报文中,用一个 8byte 的字节记录每一条消息的时间。

2.对于 Mirror 中的任何消息处理程序,都可以通过 NetworkConnection.remoteTimeStamp 从其到达的批次中获取时间戳。

3.在客户端方面,所有对象数据都以消息/批次形式从服务器发送。因此,在任何给定时间,你都可以通过 NetworkClient.connection.remoteTimeStamp 了解服务器何时发送了对象的 Rpc/OnDeserialize/OnMessage 处理程序。

请注意,在客户端,我们不使用对象的 connectionToServer,因为只有玩家拥有的对象才与服务器有连接。相反,我们使用的是客户端的 NetworkClient.connection to server,它始终保证存在。

4.在服务器上,只有玩家拥有的对象才能从玩家连接中获取信息。因此,在任何给定时间,你都可以通过 connectionToClient.remoteTimeStamp 找到客户端何时发送了对象的 Cmd/OnDeserialize/OnMessage 处理程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值