我使用框架 MultipeerConnectivity 在设备之间发送文件。我了解到,默认情况下,这个框架最多可以连接8个设备,所以在我的情况下,我想把它减少到只有2个设备(在这种情况下是我和另一个人)
在文档中他说我们可以使用常量:
kMCSessionMaximumNumberOfPeers和kMCSessionMinimumNumberOfPeers
以下是配置MCSession的代码:
mySession = [[MCSession alloc] initWithPeer:self.myPeerID];
mySession.delegate = self;
现在,我如何在代码中使用常量来定义maximumPeers和minimumPeers?
答案 0 :(得分:2)
这些常数是信息性的。如果要限制连接的对等体的数量,则每当对等体连接/断开连接时,您需要检查count
实例的MCSession
属性的connectedPeers
。然后,您可以根据需要打开/关闭浏览/广告。
- (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
}
}
您可能还需要在MCNearbyServiceBrowser
和MCNearbyServiceAdvertiser
委托方法中添加检查,以确保在MCPeerID
连接状态更改时不会同时邀请/接受对等方。