Dav*_*eet 11 ios multipeer-connectivity
我希望使用Multipeer Connectivity框架,并感谢任何有关如何最好地进行的经验的声音.
我需要一个"教练"设备和多达45个"播放器"设备之间的连接.它们都将在同一个空间,但无法预测无线网络的可用性或连接.教练设备需要每秒向所有播放器设备发送指令(小数据包).每个"玩家"需要每秒将蓝牙心率监视器(非常小的数据包)的读数发送回教练.由于每个会话的最大同等数为8,这些想法中的任何一个都能满足我需要的数字吗?
a)与教练建立连接的前7个玩家设备通告不同的会话类型,并允许7个(或者这将是6?)更多玩家加入他们.那些前7名作为其他49名(或42名?)的中间人,通过传递教练的指示并将收集的读数传回给教练.指令和心率读数之间的几秒钟滞后不是首选,但可以.
b)教练设备创建并通告一个会话.在连接了7个播放器设备后,教练设备会创建另一个会话并重复7次.重复,直到所有玩家设备都连接到教练.这似乎不太可行,但如果不了解Multipeer Connectivity的魔力,它就会浮现在脑海中.
c)教练与玩家设备1建立会话,其连接到设备2 ...在菊花链地形中.当每个设备接收到指令时,它会将自己的读数添加到数据包并发送.最后一个设备将整个数据包返回给教练.我无法预测一轮数据需要多长时间,如果一台设备离开该组,它似乎也很麻烦.
任何有关使用45个左右设备的Multipeer Connection Framework的经验的建议或声音都将受到赞赏.
我最近一直在思考类似的东西,如果你不需要'玩家'来互相沟通,我会说你的情况b)将是你最好的选择.
Multipeer Connectivity支持多个会话,因此您可以拥有一个用于会话对象的数组,作为"教练"进行宣传,并且如果每个已发现的玩家有容量或创建一个新会话,则会邀请他们加入最新会话.
您的播放器对象可以保留对会话和peerID的引用以用于发送数据,并且可以保持映射到相应播放器对象的peerID displayNames的字典以处理传入的数据.
这样你在给定的'玩家'和'教练'之间也没有跳跃,不像a)和c).
显然,真正的技巧是测试.我自己没有8个以上的设备,我仍然不确定我将如何测试自己的实现!
编辑
我在这里用实际代码回答了类似的问题:在iPhone之间传输数据的最佳选择
| 归档时间: |
|
| 查看次数: |
6119 次 |
| 最近记录: |