设备可以同时使用Multipeer通告和发现相同的服务吗?如果是这样,它会发现自己吗?
我目前正在尝试在模拟器和实际设备之间建立连接,即使它们位于同一网络上也无法连接它们,我已经调用了startAdvertisingPeer和startBrowsingForPeers。谢谢。
在自定义init方法中创建MCNearbyService对象的代码,该方法接收目标类以通知和发送数据。 (格式在下面有点破碎)
- (NMPeerToPeer*)initWithTarget:(id)obj {
self = [super init];
if (self) {
target = obj;
}
localPeerID = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];
MCNearbyServiceAdvertiser *advertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:localPeerID discoveryInfo:[NSDictionary dictionaryWithObject:[NSKeyedUnarchiver unarchiveObjectWithData:[ReadWriteData readFile:lastUpdatedFilename]] forKey:@"last-updated"] serviceType:XXServiceType];
advertiser.delegate = self;
[advertiser startAdvertisingPeer];
NSLog(@"advertser started");
MCNearbyServiceBrowser* browser = [[MCNearbyServiceBrowser alloc] initWithPeer:localPeerID serviceType:XXServiceType];
browser.delegate = self;
[browser startBrowsingForPeers];
NSLog(@"browser started");
return self;
}`
广告客户的discoveryInfo是浏览器将用于确定是否连接的值的字典。
目前,广告客户和浏览器似乎正确启动,但没有调用任何委托方法。我已将代理ID包含在类的.h文件中。
更新: GitHub Gist具有多重连接类代码https://gist.github.com/ansonl/9a98df84942e1f14b2cd。