多重连接MCSession连接时停止广告导致断开连接

时间:2015-09-02 10:24:39

标签: ios objective-c xcode multipeer-connectivity mcsession

我有一个简单的聊天应用程序,它使用Multipeer连接来回发送文本。

我正在使用MCSessionDelegate

-(void)advertiseSelf:(BOOL)shouldAdvertise{
if (shouldAdvertise) {
    _advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"messagingapp"
                                                       discoveryInfo:nil
                                                             session:_session];
    [_advertiser start];
}
else{
    [_advertiser stop];
    _advertiser = nil;
}

}

当用户连接时,我调用以下内容:

-(void)hideSelf{
    [self.swVisible setOn:NO];
    [_appDelegate.mcManager advertiseSelf:_swVisible.isOn];
}

我希望该应用停止广告,因为该应用是一对一的通信应用。

问题是,这导致MCSessionStateNotConnected

我已将_browser.maximumNumberOfPeers设置为2但我无法看到在会话期间隐藏可见性的另一种方法,而不会导致会话连接丢失。

请帮忙 谢谢

1 个答案:

答案 0 :(得分:0)

您应该为尝试连接到主机的每个对等方建立不同的会话。通过这样做,您可以在不影响其他连接会话的情况下拒绝邀请。