在 MCSession 中设置最大对等点
Posted
技术标签:
【中文标题】在 MCSession 中设置最大对等点【英文标题】:Set the maximum peers in MCSession 【发布时间】:2015-02-06 14:18:49 【问题描述】:我正在使用框架 MultipeerConnectivity 在设备之间发送文件。我了解到,默认情况下,这个框架最多可以连接 8 个设备,所以在我的情况下,我想将其减少到只有 2 个设备(在这种情况下是我的和另一个人)
在文档中他说我们可以使用常量:
kMCSessionMaximumNumberOfPeers 和 kMCSessionMinimumNumberOfPeers
下面是我配置 MCSession 的代码:
mySession = [[MCSession alloc] initWithPeer:self.myPeerID];
mySession.delegate = self;
现在,如何在代码中使用常量 up 来定义 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
您可能还需要在您的 MCNearbyServiceBrowser
和 MCNearbyServiceAdvertiser
委托方法中添加检查,以确保您不会在 MCPeerID
连接状态更改时同时邀请/接受对等方。
【讨论】:
以上是关于在 MCSession 中设置最大对等点的主要内容,如果未能解决你的问题,请参考以下文章
怎么在Quagga BGP路由器中设置IPv6的BGP对等体和过滤