Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何正确断开多个EER连接会话?_Ios_Objective C_Multipeer Connectivity - Fatal编程技术网

Ios 如何正确断开多个EER连接会话?

Ios 如何正确断开多个EER连接会话?,ios,objective-c,multipeer-connectivity,Ios,Objective C,Multipeer Connectivity,我发现多个EER连接有时会出现重新连接的问题。每当我尝试重新连接到刚断开连接的客户端时,它都无法向客户端发送新的邀请。我不确定什么是与连接的对等方断开连接的正确方法,以及如果应用程序因处于挂起模式而被终止,如何与所有连接的对等方断开连接。谁能帮我拿这个吗 例如: 如果我连接了A和B,并且B超出了范围,则会话将自动断开,因为无法访问,并且 - (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCS

我发现多个EER连接有时会出现重新连接的问题。每当我尝试重新连接到刚断开连接的客户端时,它都无法向客户端发送新的邀请。我不确定什么是与连接的对等方断开连接的正确方法,以及如果应用程序因处于挂起模式而被终止,如何与所有连接的对等方断开连接。谁能帮我拿这个吗

例如:

如果我连接了A和B,并且B超出了范围,则会话将自动断开,因为无法访问,并且

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

调用时,我相信此时双方都知道他们已经断开了彼此的连接,但是,当B走回来并想要重新连接时——邀请已发送,但另一方从未收到。到底发生了什么?我是否必须手动断开会话以防止出现这种情况?

每当我断开连接并要重新连接时,我都会重置浏览器端的PeerID和会话:

    // reset my PeerID.  Sometimes when trying to reconnect to the same Advertiser with the same PeerID nothing happens
    mcPeerID = [[MCPeerID alloc] initWithDisplayName:[UIDevice currentDevice].name];
    mcSession = [[MCSession alloc] initWithPeer:mcPeerID];
    mcSession.delegate = self;

    mcNearbyServiceBrowser = [[MCNearbyServiceBrowser alloc] initWithPeer:mcPeerID serviceType:kMCServiceType];
    mcNearbyServiceBrowser.delegate = self;
    [mcNearbyServiceBrowser startBrowsingForPeers];
在广告客户方面,断开连接时,connectedPeers计数会正确减少,因此作为“不同”浏览器重新连接似乎不会产生负面影响(可能这不是正确的编码,但它可以工作)。有了新的PeerID,我可以毫无问题地重新连接。我同时重置会话以保持它们的同步(即,我不希望会话是从旧PeerID初始化的)。

可能重复的