有时其他玩家处于错误的位置(请记住所有设备都具有相同的屏幕尺寸).这是因为连接滞后.我每秒可以发送多少信息以及管理数据传输的最佳方式是什么?
任何想法/想法都表示赞赏.
解决方法
您无需连接到WiFi网络.只需在所有设备上启用WiFi,iOS将利用共享WiFi网络或创建自己的adhoc网络.
您要确保的第二件事是您的同伴不会互相邀请.您的网络中只能有一个邀请者.当多个对等方邀请并接受连接时,MPC网络变得不稳定.
第三件事是sendData:(NSData *)数据toPeers:(NSArray *)peerIDs withMode:(MCSessionSendDataMode)模式错误:(NSError **)错误.如果要将数据包广播到toPeers中的所有对等方:数组AND模式为MCSessionSendDataReliable,则MPC会等待所有连接的对等方确认消息,然后再转到下一个数据包.
更新:我使用自己的应用程序和WiFi进行了一些测试,我可以使用两个设备进行大约100kbps的测试.我正在使用iPhone 6 Plus和iPhone 5S.
更新2:更多地考虑您的问题,MPC通信需要记住几件事:
>在后台线程上执行所有sendData和didReceiveData调用,并让该线程更新模型中的位置数据.告诉您的viewController,通过委托方法或通知可以获得更新.>保持您的数据包较小,但设计它们,以便收到的更新代表您的播放器的当前状态.这允许你错过更新而不是完全不同步 – “发送播放器1移动到(10,10)”而不是“播放器1移动(1,-1)”>为您的数据包编号并使用MCSessionSendDataUnreliable.如果您收到的数据包的编号早于您处理的最后一个数据包,请将其丢弃.如果您遵循上面的第二条准则,则不需要此数据包.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。