Multipeer Connectivity - 检查所有附近的对等点是不是已连接并尝试重新连接它们
Posted
技术标签:
【中文标题】Multipeer Connectivity - 检查所有附近的对等点是不是已连接并尝试重新连接它们【英文标题】:Multpeer Connectivity - Checking if all nearby peers are connected and trying to reconnect themMultipeer Connectivity - 检查所有附近的对等点是否已连接并尝试重新连接它们 【发布时间】:2014-07-25 21:55:32 【问题描述】:我有几个关于 Multipeer Connectivity 框架的问题。我有多个设备(浏览器)自动连接到一个设备(广告商)。现在,问题通常是大多数对等方连接但一两个不连接(会话状态返回为“未连接”)。我尝试通过删除会话/浏览器/广告商并重新分配它们来自动重新连接它们。但是大多数时候他们只是没有连接。我想知道是否有人知道这背后的原因。如果我错过了什么或做错了什么。或者在这种情况下我能做什么?
其次,我如何检查附近的所有对等点是否都已连接,这意味着我可以尝试向它们发送一些数据。我的意思是我从会话中获得了 connectedPeers 数组,但它并没有告诉我有多少对等方仍在尝试连接,有什么想法吗?
【问题讨论】:
【参考方案1】:我强烈建议您更改您的设计,以便只有一个浏览器,而所有其他同行都是广告商。浏览过程确实会降低网络性能,如果您有多个浏览器,您会遇到更多的连接问题和更慢的传输速度。
此外,如果您只有一个浏览器,则该浏览器应该能够判断所有对等点何时已连接,因为它应该知道所有对等点。
此外,不确定您是否这样做,但如果它适用于您的项目,您可以为每个 [master/browser, client/advertiser] 对创建一个单独的 MCSession
对象。这样,如果您无法连接到一个对等点,您可以仅为该对等点删除 MCSession
,并让其他对等点在各自的会话中保持连接。
【讨论】:
谢谢——减少浏览器确实有助于解决我的连接问题。目前这似乎是一个很好的解决方法。以上是关于Multipeer Connectivity - 检查所有附近的对等点是不是已连接并尝试重新连接它们的主要内容,如果未能解决你的问题,请参考以下文章
如何检测 Multipeer Connectivity 邀请的拒绝?
无法通过 Multipeer Connectivity 连接蓝牙
如何使用swift 4查看Multipeer Connectivity框架中的MCBrowserViewController