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

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

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

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

谢谢

解决方法

您可以使用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

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...