【问题标题】:APIs are not responding fast is APP is using Multipeer Connectivity frameworkAPI 没有快速响应是 APP 正在使用 Multipeer Connectivity 框架
【发布时间】:2016-10-14 20:55:32
【问题描述】:
我在我的 APP 中使用 Multipeer Connectivity Framework,它工作得非常好,但是当 APP 调用任何 API 或从服务器下载任何文件时,它会延迟响应。有时它会失败,有时我会收到超时错误。
我还在 xCode 调试导航器上检查了“网络”状态,发现速度会立即上升和下降,并且永远不会超过 6kb/s,有时它会显示为 0 kb/s,但是当我禁用 Multipeer Connectivity 时它可以工作很好,速度也可以达到 70kb/s。
我还注意到,如果蓝牙是开启的,那么它不会发生在 Wifi 上。
任何建议都将是非常可观的。
【问题讨论】:
标签:
ios
api
afnetworking
multipeer-connectivity
【解决方案1】:
发生这种情况是因为在做广告时,Multipeer 总是在 wifi 上做广告(没有办法只说蓝牙)。它的广告方式是每秒多次将 wifi 访问模式切换为 adhoc 以查找其他对等方,然后切换回 AP 模式(即恢复其与您的 wifi 路由器的连接)。这样做会对大额传输造成极大破坏。
您有两种选择来解决此问题:
1) 建立联系后,请尽快致电stopAdvertising()。这将阻止 wifi 模式不断变化,您的吞吐量将恢复到正常速率。警告:您不能对此进行微观管理,因为调用stopAdvertising()后最多需要30秒才能生效
2) 从 Multipeer 切换到允许您指定仅蓝牙且仅使用蓝牙的替代框架。我写了一个名为BluePeer 的应用程序。它是单播(不是多播)并且支持像客户端/服务器这样的角色(以及像 Multipeer 这样的无角色)