【发布时间】:2013-10-28 11:55:26
【问题描述】:
我在我的应用程序中使用 iOS 7 Multipeer 框架,但我遇到了设备断开连接的问题。如果我在两个设备中打开应用程序:设备 A 和设备 B,这两个设备会自动相互连接。然而,几秒钟后,设备 A 与设备 B 断开连接。即起初连接是这样的:
A ---> B
A <--- B
几秒钟后:
A ---> B
A B
设备 A 保持其连接,但设备 B 获得 MCSessionStateNotConnected。
这意味着 A 可以向 B 发送数据,但 B 不能回复。我试图通过检查设备是否已连接来解决此问题,如果未连接,请使用以下方法重新启动连接:
[browser invitePeer:peerID toSession:_session withContext:Nil timeout:10];
但是 didChangeState 回调只是被 MCSessionStateNotConnected 调用。
奇怪的是,如果我将应用程序 A 发送到后台,然后重新打开它,B 重新连接到它并保持连接。
Multipeer API(和文档)似乎有点稀疏,所以我假设它可以正常工作。在这种情况下我应该如何重新连接设备?
【问题讨论】:
-
是局部问题还是物理问题?你有没有试过在每个 B 到 A 之间做一些tracepath?
-
我很确定这不是物理问题,因为我已经能够使用 DNS-SD 和 CFSockets 手动获得稳定的蓝牙连接。这似乎是一个 MultiPeer 问题。
-
啊对不起,我以为是远程上网,但它是蓝牙!
-
您是否同时浏览和投放广告? A 和 B 都邀请和接受吗?
-
是的 - 只是想在我提供答案之前检查您是否与我在同一条船上。
标签: ios iphone bluetooth multipeer-connectivity