Multipeer Connectivity:列出所有附近的会话

时间:2014-11-11 06:39:14

标签: ios session multipeer-connectivity

我正在开发ios 7中的Multipeer连接并且工作得很好。但我需要的是,当我按下搜索按钮时,它需要显示所有附近的会话(不是附近的设备 )。有什么可能的解决方案。请帮助!!!

2 个答案:

答案 0 :(得分:0)

您没有说明为什么要在对等体之间传递MCSession个对象,但是一旦有两个连接的对等体,就可以使用一个对等体传递符合NSCoding协议的任何对象MCSession数据发送方法如

- (BOOL)sendData:(NSData *)data toPeers:(NSArray *)peerIDs withMode:(MCSessionSendDataMode)mode error:(NSError **)error

然而,MCSession不符合NSCoding,因此您最好在同级之间从MCSession发送元数据。因此,如果Peer A和Peer B已连接,并且Peer A想知道Peer B连接到哪个其他对等端,则Peer B可以发送一个NSString对象数组,列出每个对等端的displayName。 / p>

但是,即使你这样做,如果同伴A没有发现(或被发现的)同伴B的连接同伴,你无论如何都无法与他们通信。你正在寻找在同伴之间发送MCSession对象的方法,这意味着可能有更好的方法来解决你想要实现的目标。

<强> TL;博士

MCSession处理对等体之间的连接。首先需要连接对等体以共享其MCSession对象。

答案 1 :(得分:0)

您无法宣传MCSession,而是使用多个MCNearbyServiceBrowser对象和MCNearbyServiceAdvertiser对象来浏览和宣传多种服务类型。

使用MCNearbyServiceAdvertiser初始化initWithPeer:discoveryInfo:serviceType:时 将您的服务名称(服务类型)放入发现信息中,以便在MCNearbyServiceBrowser MCNearbyServiceBrowserDelegatebrowser:foundPeer:withDiscoveryInfo:(浏览相同的服务类型)找到同伴时,您可以确定服务类型并在UI中显示。

通过这种方式,同一个对等体将多次出现在不同的服务类型中。您可以选择所需的服务类型继续。 我恳请您为每种服务类型使用单独的MCSession。 为此,您需要仔细维护所有浏览器和广告客户对象。

希望它有所帮助。