2016-06-14 81 views
0

我在我的APP中使用Multipeer Connectivity Framework並且它的工作非常好,但是當APP調用任何API或從服務器下載任何文件時,它會延遲響應。有時它失敗了,有時候我得到超時錯誤。API不能快速響應APP正在使用Multipeer連接框架

我也檢查了xCode調試導航器上的「網絡」狀態,發現速度瞬間上升和下降,永遠不會超過6kb/s,有時顯示爲0 kb/s,但是當我禁用Multipeer Connectivity時,工作正常,速度也在70kb/s。

我也注意到,如果藍牙是開的,那麼它發生的不是Wifi。

任何建議都會非常可觀。

回答

0

這是因爲廣告時發生的,Multipeer總是在wifi上做廣告(沒辦法只說藍牙)。它的廣告方式是通過將wifi訪問模式切換爲adhoc每秒多次來查找其他對等方,然後切換回AP模式(即恢復其與無線路由器的連接)。這樣做對高度破壞性的

你有兩個選擇來解決這個問題:

1)只要你能,建立連接後,調用stopAdvertising()。這將阻止wifi模式不斷變化,並且您的吞吐量將以正常速率恢復。警告:由於在調用stopAdvertising()直到生效之前需要30秒才能對其進行微調,直到它生效爲止

2)從Multipeer切換到另一個框架,允許您指定藍牙且僅使用藍牙。我寫了一個名爲BluePeer的應用程序。它是單播的(不是多播),並支持像客戶端/服務器這樣的角色(以及像Multipeer這樣的角色)