多路连接 - 检查所有附近的对等设备是否已连接并尝试重新连接

时间:2014-07-25 21:55:32

标签: ios objective-c multipeer-connectivity

我对Multipeer Connectivity框架有几个问题。我有多个设备(浏览器)自动连接到一个设备(广告商)。现在,问题通常是大多数同伴连接但是一个或两个没有连接(会话状态返回为"未连接")。我尝试通过删除会话/浏览器/广告商并重新分配它们来自动重新连接它们。但是大多数时候他们只是没有联系。我想知道是否有人知道这背后的原因。如果我遗漏了什么或做错了什么。或者在这种情况下我该怎么办?

其次,我如何检查附近的所有对等体是否已连接到意味着我可以尝试向它们发送一些数据。我的意思是我从会话中连接了来自阵列的数据,但它没有告诉我有多少同行仍在尝试连接,任何想法?

1 个答案:

答案 0 :(得分:3)

我强烈建议您更改设计,以便只有一个浏览器,而所有其他同行都是广告客户。浏览过程确实会降低网络性能,如果您有多个浏览器,您将遇到更多连接问题和更慢的传输。

更重要的是,如果您只有一个浏览器,那么该浏览器应该能够判断所有对等体是否已连接,因为它应该知道所有对等体。

此外,不确定您是否正在执行此操作,但如果它适用于您的项目,则可以为每个[主/浏览器,客户端/广告客户]对创建单独的MCSession对象。这样,如果您无法连接到一个对等体,您可以只删除该对等体的MCSession,并在其各自的会话中保持其他对等体的连接。