是否可以在没有邀请的情况下连接到Multipeer Connectivity会话?

时间:2014-03-28 16:18:38

标签: ios objective-c multipeer-connectivity

我正在尝试创建一个类似于FireChat的应用,用户可以自动连接到Multipeer Connectivity会话,而无需发送或接收连接邀请。

我见过的所有教程都使用了MCBrowserViewController。必须可以加入会话而无需选择对等连接,并且如果Firechat将其连接,则发送和接受连接请求。

有谁知道怎么做?

由于

1 个答案:

答案 0 :(得分:12)

您可以使用MCNearbyServiceBrowser,而不是使用MCBroswerViewController。 然后它将调用委托方法:

- (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(NSDictionary *)info;

然后您可以自动发送邀请,例如:

[browser invitePeer:peerID
            toSession:self.session
          withContext:nil
              timeout:10];

然而,在这样做的过程中,我遇到了很多其他问题。到目前为止似乎:

  • 如果两台设备都发送邀请并接受邀请,那么它们会很快随机断开连接。
  • 如果两台设备同时进行广告和广播,则会随机断开连接。

我现在正在开发一个开源库,尝试完全按照您的要求进行操作:连接没有任何邀请或浏览器的设备(没有用户界面)。

这是:https://github.com/plivesey/PLPartyTime

然而,它还没有奏效。我还没有完全解决上述两个问题,但是如果你想查看代码并看看你能解决什么问题,那就去吧。请告诉我你所取得的进展。处理这个框架令人沮丧...