ios - 在 MCSession 中设置最大对等点数

标签 ios objective-c multipeer-connectivity mcsession

我正在使用框架 MultipeerConnectivity 在设备之间发送文件。我了解到默认情况下这个框架最多可以连接 8 个设备,所以在我的例子中我想将它减少到只有 2 个设备(在这种情况下是我的和另一个人)

在文档中他说我们可以使用常量:

kMCSessionMaximumNumberOfPeers and kMCSessionMinimumNumberOfPeers

下面是我配置 MCSession 的代码:

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

mySession.delegate = self;

现在,我如何在我的代码中使用常量 up 来定义 maximumPeers 和 minimumPeers?

最佳答案

这些常量是信息性的。如果你想限制连接点的数量,你需要检查 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 委托(delegate)方法中添加检查,以确保您不会同时邀请/接受同级作为 MCNearbyServiceID 连接状态改变。

关于ios - 在 MCSession 中设置最大对等点数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367782/

相关文章:

ios - CMSampleBuffer 到 Swift 中的字节数组

ios web View - 单击后,如何在 web 浏览器中打开页面而不是嵌入到应用程序中

ios - 异步 DNS 查找

ios - AVMetadataFaceObject 精度

objective-c - IBOutlet 声明?

Swift 多点视频应用程序不会读取数据

ios - 为什么 if(nil) 被评估为 true?

ios - 在 iOS7 中滚动之前,uitableviewcell 不会更新

ios - AB地址簿崩溃 CFStringRef

ios - 使用 Xcode 在 iOS 上实现多点连接