gpt4 book ai didi

ios - 如何正确拆除多点连接 session ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:05:29 26 4
gpt4 key购买 nike

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

例如:

如果我连接了 A 和 B,而 B 走出了范围, session 会因为不可达而自动断开

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

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

最佳答案

每当我断开连接并想重新连接时,我都会在浏览器端重置 PeerID 和 Session:

    // 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,我可以毫无问题地重新连接。我同时重置 session 以使它们保持同步(即,我不希望 session 是从旧的 PeerID 初始化的)。

关于ios - 如何正确拆除多点连接 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com