【问题标题】:Multipeer Connectivity Disconnect多人连接断开
【发布时间】:2013-10-06 18:23:02
【问题描述】:

我在使用 iOs7 中的 Multipeer Connectivity Framework 保持连接时遇到了问题。目前,我的应用程序正在使用 MCNearbyServiceAdvertiser 和 MCNearbyServiceBrowser 以编程方式处理浏览和广告。我有一个警报视图,询问用户他是浏览器还是广告商。从该视图返回时,我相应地实例化 MCNearbyServiceAdvertiser 或浏览器。

#pragma - Alert Delegate
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0)
    {
        _browser = [[MCNearbyServiceBrowser alloc]initWithPeer:_peerID serviceType:@"Context-xl"];
        [_browser setDelegate:self];
        [self.detailViewController setRemote:YES];
        [_browser startBrowsingForPeers];
    } else
    {
        _advertiser = [[MCNearbyServiceAdvertiser alloc]initWithPeer:_peerID discoveryInfo:nil serviceType:@"Context-xl"];
        [_advertiser setDelegate:self];
        [self.detailViewController setRemote:NO];
        [_advertiser startAdvertisingPeer];
    }
    [self.detailViewController configureView];
}

我的会话委托方法 peer:...DidChangeState... 被调用了两次,一次用于连接,另一次用于断开连接。会话开始后,我根本不会停止广告商或浏览器。我应该停止浏览/广告吗?

【问题讨论】:

  • 我一直在努力。我认为可能设置断点会导致设备断开连接,实际上似乎是这样。但是,设备在正常运行时不会保持连接状态。
  • 我遇到了同样的问题。设备连接一会儿然后断开连接,不会保持连接或重新连接。
  • 当我使用 MCSession 的 sendData:ToPeer 方法进行文件传输时,发生了很多事情。我已经切换到使用 startStream:withName 方法打开流,并且设备一直保持连接。
  • 我也会随机断开连接,即使在没有后台或断点的情况下也是如此。有人找到解决方案了吗?

标签: ios7 multipeer-connectivity


【解决方案1】:

编辑使用了 Apple 的支持票,他们确认使用过多数据或过于频繁地调用 sendData 会导致断开连接。

编辑 我的假设是,Apple 有一个线程或队列正在轮询以检查对等方是否已连接。如果此线程/队列停止(即断点被击中或应用程序锁定 CPU 或在主线程上执行一些需要一段时间的操作),这似乎会导致断开连接。

在没有加密的情况下创建我的会话似乎有助于提高性能并解决断开连接问题,尽管它们仍然会发生。

MCPeerID* peerId = [[MCPeerID alloc] initWithDisplayName:self.displayName];
self.peer = [[MultiPeerPeer alloc] initWithDisplayName:peerId.displayName andPeer:peerId];
self.session = [[MCSession alloc] initWithPeer:peerId securityIdentity:nil encryptionPreference:MCEncryptionNone];

此外,我发现过于频繁地调用 sendData(每秒超过 30-60 次)会导致框架进入不良状态并导致冻结和断开连接。

【讨论】:

  • 我实际上与从事多点连接工作的 Apple 工程师进行了交谈,他们确认过于频繁地调用 sendData 会导致问题。也许 iOS 8 会解决这个问题,我们拭目以待......
  • 嘿,傻瓜知道。你有支持票的链接吗?
  • @Omer 很遗憾,电子邮件已被删除。
猜你喜欢
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 2014-09-04
  • 2011-05-20
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多