10

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

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

有谁知道如何做到这一点?

谢谢

4

1 回答 1

13

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

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

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

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

但是,在这样做时,我遇到了很多其他问题。到目前为止,似乎:

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

我现在实际上正在开发一个开源库,以尝试完全按照您的要求进行操作:无需任何邀请或浏览器即可连接设备(无需 UI)。

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

但是,它还没有工作。我还没有完全解决上述两个问题,但是如果你想查看代码并看看你能解决什么问题,那就去做吧。请让我知道您取得的任何进展。这个框架令人沮丧地处理......

于 2014-04-15T06:00:02.977 回答