2015-02-06 15 views
2

我在使用框架的設備之間發送文件MultipeerConnectivity。我知道默認情況下,這個框架可以連接多達8個設備,所以在我的情況下,我想減少到只有2個設備(在這種情況下是我的和其他人)設置MCSession中的最大對等點

在他說的文檔我們可以使用常量:

kMCSessionMaximumNumberOfPeers和kMCSessionMinimumNumberOfPeers

下面是我的代碼,配置MCSession:

mySession = [[MCSession alloc] initWithPeer:self.myPeerID]; 

mySession.delegate = self; 

現在,我如何使用我的代碼中的常量來定義maximumPeers和minimumPeers?

回答

1

那些常量是信息性的。如果要限制連接的對等方的數量,則每當對等方連接/斷開連接時,都需要檢查MCSession實例的connectedPeers屬性的count。然後,您可以根據需要打開/關閉瀏覽/廣告。

- (void)session:(MCSession *)session 
     peer:(MCPeerID *)peerID 
didChangeState:(MCSessionState)state { 

    NSInteger sessionCount = [session.connectedPeers count]; 

    if (sessionCount==2){ 

     //Stop browsing and/or advertising 
    } 
    else { 

     //Based on your own rules/requirements, if the session count 
     //has dropped below 2 you can start browsing and/or advertising 
    } 
} 

您可能還需要在您的MCNearbyServiceBrowserMCNearbyServiceAdvertiser委託方法添加檢查,以確保你沒有邀請/接受同齡人同時兼任MCPeerID連接狀態更改。