使用Multipeer同时做广告和发现

时间:2014-06-09 03:45:39

标签: ios multipeer-connectivity

设备可以同时使用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

0 个答案:

没有答案