MultipeerConnectivity Pass连接前缩略图



我正试图找出一种在设备同意连接之前在设备之间传递缩略图的方法。

因此我不能使用发送数据或发送资源方法。我不能在discoveryInfo中传递它,因为这会超过discoveryInfo的大小限制。

是的,我可以将图像存储在服务器上,并在discoveryInfo中存储指向它的链接并传递该链接,但这不是一个真正的选项(例如,考虑没有互联网连接)

这样做的原因是,当用户出现在列表中时,我需要在他们的名字旁边显示用户的缩略图。

(我没有使用标准的对等选择器窗口,而是使用MCNearbyServiceAdvertiser和MCNearbyServiceBrowser做我自己的接口)

有没有人知道我如何传递缩略图,或者传递对缩略图的引用,然后我可以在他们的设备上使用应用程序,然后通过标准控件/Multipeer/Bonjour/等?

谢谢!

当您听到附近的peer并邀请他们加入会话时,您调用

invitePeer:toSession:withContext:timeout:

上下文是传递给附近对等体的任意数据片段。这可用于向用户提供有关邀请性质的进一步信息。"

你可以在上下文中包含一个包含缩略图的NSData。

您可以在创建MCNearbyServiceAdvertiser时通过提供discoveryInfo在较早的阶段交换信息。这是一个可供浏览器使用的键值对字典。但是,您不能将其用于缩略图,因为"当使用UTF-8编码时,键值对必须不超过255字节(总数)"。

要交换更大量的数据,您需要使用Bonjour创建一个自定义发现类来进行发现。

最新更新