我在我的应用程序中使用多点连接框架,它工作得很好,但是当应用程序调用任何 API 或从服务器下载任何文件时,它会延迟响应。有时会失败,有时会出现超时错误。
我还检查了 xCode 调试导航器上的“网络”状态,发现速度会立即上升和下降,并且永远不会超过 6kb/s,有时显示为 0 kb/s,但是当我禁用多点连接时,它工作正常并且速度也达到 70kb/s。
我还注意到,如果蓝牙打开,那么它不会发生在 WiFi 上。
如有任何建议,我们将不胜感激。
发生这种情况是因为在做广告时,Multipeer 总是在 wifi 上做广告(没办法只说蓝牙)。它宣传的方式是通过“每秒多次将 wifi 访问模式切换为 adhoc”来查找其他对等点,然后切换回 AP 模式(即恢复与您的 wifi 路由器的连接)。这样做会对大额转账造成很大的破坏。 您有两种选择来解决此问题:
1) 连接后,尽快致电
stopAdvertising()
。这将阻止 wifi 模式不断变化,并且您的吞吐量将恢复到正常速率。警告:您无法对此进行微观管理,因为调用
stopAdvertising()
后最多需要 30 秒才能生效2) 从 Multipeer 切换到替代框架,该框架允许您指定仅蓝牙,并且仅使用蓝牙。我写了一个名为 BluePeer