考慮到社區遇到的所有錯誤,我想知道這個Multipeer連接框架是否可以在現實世界中使用。我想我正確地設置它,但我嘗試過的所有其他示例項目都遇到類似的問題。Multipeer連接框架 - 丟失的對端留在會話中
我有可能被捆綁到一些固有的卓悅什麼問題的問題,我不出來,但基本問題如下:
- 我有一個活動
MCSession
與一些同行。 - 現在,如果設備在會話中,然後強制退出,則「對等」會保持連接狀態的時間不確定。
- 即使對該對等方調用
browser:lostPeer:
方法並且不再在瀏覽器中顯示爲 「Nearby」,我也無法強制該用戶出來。 session:peer:didChangeState:
方法不被該對等方調用。- 當強制退出的同伴回到應用程序時,它們被
browser:foundPeer:withDiscoveryInfo:
再次「發現」,但仍存在於session.connectedPeers
NSArray中。很明顯,他們沒有收到關於會話的任何數據或更新,但實際上並沒有連接。 - 似乎工作原理的唯一似乎將
MCSessionStateNotConnected
註冊到會話的方法是將該對等體重新連接到原始會話。然後重複調用session:peer:didChangeState:
,其中peerID的新實例爲MCSessionStateConnected
,並且在peerID的舊實例與MCSessionStateNotConnected
調用後不久。
樣品聊天應用程序演示了這個問題很好:https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html
因爲似乎沒有被任何手動強制從會話中刪除對,我應該怎麼辦?我應該嘗試重建會議嗎?
這個框架看起來有點亂,但我試圖保留判斷!
我有一個工作的應用程序,但把它擴大近8名同行,現在它破產需要:(我有。發現一個問題到目前爲止,在進入後臺時不會無意中強烈地引用MC對象(我知道,適用範圍比MC更廣泛,但提醒有幫助!) – 300baud
我有同樣的問題有時MCSession的會話:peer :didChangeState:不會使用MCSessionStateNotConnected爲具有斷開連接的對等方調用。當連接多個對等點時,某些對等點將收到通知其他不會。有時候每個人都會得到正確的通知我已經能夠找出它的根本原因。即使對方正在調用其斷開方法,也會發生這種情況。 –