MultipeerConnectivity在连接之前传递缩略图

时间:2014-08-11 21:34:26

标签: ios bonjour multipeer-connectivity

我试图想办法在设备同意连接之前在设备之间传递缩略图。

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

是的我 COULD 将图像存储在服务器上并在discoveryInfo中存储链接并传递给它,但这不是一个选项(一个用于例如,考虑没有互联网连接)

原因是我需要在列表中显示用户旁边的缩略图时显示。

(我不是使用标准的对等选择器窗口,而是使用MCNearbyServiceAdvertiser和MCNearbyServiceBrowser进行我自己的界面)

有没有人知道如何传递缩略图,或者将参考传递给我可以在他们的设备上获得的缩略图,然后通过标准控件/ Multipeer / Bonjour /等获得?

谢谢!

1 个答案:

答案 0 :(得分:2)

当您听到附近的同伴并邀请他们加入会话时,请致电

invitePeer:toSession:withContext:timeout:

上下文是“传递给附近对等方的任意数据。这可以用来向用户提供有关邀请性质的更多信息。”

据推测,您可以在上下文中包含一个包含缩略图图像的NSData。

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

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