我使用Multipeer连接功能。
考虑A,B,C在由A.Suppose B创建的会话中连接,想要离开会话而不断开会话([会话断开连接])或退出应用程序。这可能吗?是否关闭B的广告商,将其与会话断开连接?或者还有其他方法吗?请帮忙!
答案 0 :(得分:0)
在您的情况下,没有什么可以阻止您与单个对等方创建多个会话(我有一个解决方案,到目前为止,最多可以运行16个对等方)。顺便说一下,this answer也可以提供帮助
选项1: A-> B(会话1) A-> C(会话1)
选项2: A-> B(会话1) A-> C(会话2)
在选项2中,您可以简单地[会话断开连接] 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];
答案 1 :(得分:0)
MCMultipeerConnectivity框架的Apple示例应用程序包含您描述的用例。
他们创建一个包装类来处理MCSession,每个MCSession维护一个连接的MCPeerID数组。
来源:https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html