在不退出应用程序的情况下断开会话
Disconnecting a session without exiting the app
我正在使用多点连接功能。
考虑 A、B、C 在由 A.Suppose 创建的会话中连接 B 想要退出会话而不断开会话([session Disconnect])或退出应用程序。这可能吗? .关闭 B 的广告商是否会断开它与会话的连接?或者还有其他办法吗?请帮忙!
在您的情况下,没有什么能阻止您与单个对等方创建多个会话(我有一个有效的解决方案,目前 运行 最多可与 16 个对等方一起使用)。顺便说一句,this answer 也可能有帮助
选项 1:
A->B(会话 1)
A->C(会话 1)
选项 2:
A->B(会话 1)
A->C(第 2 节)
在选项 2 中,您可以简单地 [session disconnect] A->C 而不会影响 A->B
- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser didReceiveInvitationFromPeer:(MCPeerID *)peerID withContext:(NSData *)context invitationHandler:(void(^)(BOOL accept, MCSession *session))invitationHandler
...
terminalDev.session = [self newSession];
terminalDev.peerID = peerID;
invitationHandler(YES, terminalDev.session);
- (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(NSDictionary *)info
// save the peerID for later communications
hostDevice.peerID = peerID;
// and ask the browser to invite the peer(host) to the session for this device
hostDevice.session = [self newSession];
DDLogDebug(@"Inviting Host %@ to session %@", remotePeerName, hostDevice.session);
[browser invitePeer:peerID toSession:hostDevice.session withContext:nil timeout:30.0];
MCMultipeerConnectivity 框架的 Apple 示例应用程序包含您描述的用例。
他们创建了一个包装器 class 来处理 MCSession,每个 MCSession 维护一个连接的 MCPeerID 数组。
来源:https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html
我正在使用多点连接功能。
考虑 A、B、C 在由 A.Suppose 创建的会话中连接 B 想要退出会话而不断开会话([session Disconnect])或退出应用程序。这可能吗? .关闭 B 的广告商是否会断开它与会话的连接?或者还有其他办法吗?请帮忙!
在您的情况下,没有什么能阻止您与单个对等方创建多个会话(我有一个有效的解决方案,目前 运行 最多可与 16 个对等方一起使用)。顺便说一句,this answer 也可能有帮助
选项 1: A->B(会话 1) A->C(会话 1)
选项 2: A->B(会话 1) A->C(第 2 节)
在选项 2 中,您可以简单地 [session disconnect] A->C 而不会影响 A->B
- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser didReceiveInvitationFromPeer:(MCPeerID *)peerID withContext:(NSData *)context invitationHandler:(void(^)(BOOL accept, MCSession *session))invitationHandler
...
terminalDev.session = [self newSession];
terminalDev.peerID = peerID;
invitationHandler(YES, terminalDev.session);
- (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(NSDictionary *)info
// save the peerID for later communications
hostDevice.peerID = peerID;
// and ask the browser to invite the peer(host) to the session for this device
hostDevice.session = [self newSession];
DDLogDebug(@"Inviting Host %@ to session %@", remotePeerName, hostDevice.session);
[browser invitePeer:peerID toSession:hostDevice.session withContext:nil timeout:30.0];
MCMultipeerConnectivity 框架的 Apple 示例应用程序包含您描述的用例。
他们创建了一个包装器 class 来处理 MCSession,每个 MCSession 维护一个连接的 MCPeerID 数组。
来源:https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html