我可以通过 iOS Multipeer Connectivity 发送多大的消息?

Posted

技术标签:

【中文标题】我可以通过 iOS Multipeer Connectivity 发送多大的消息?【英文标题】:How big a message can I send via iOS Multipeer Connectivity? 【发布时间】:2015-05-22 23:32:54 【问题描述】:

有没有人知道如何通过设备在设备之间传递大量消息

[MCSession sendData:(NSData *)data
     toPeers:(NSArray *)peerIDs
    withMode:(MCSessionSendDataMode)mode
       error:(NSError **)error];

可以吗?我一直在谷歌搜索没有成功。我的应用程序需要向连接的设备发送一个相当大(~1-2 MB)的信息包。我打算使用一个符合 NSCoding 的对象,我可以在任一端打包一个解包。但是,我不熟悉底层协议。会话是否允许传递这么大的对象?是否提供后台打包服务?

任何信息都会非常有帮助。

谢谢, 瑞恩

【问题讨论】:

这听起来像是“实施细节”,而不是您可以依赖的东西。您是否尝试过改用流媒体? 【参考方案1】:

正如文档中明确提到的,multipeer 支持三种类型的数据传输。

1.发送文本使用

- (BOOL)sendData:(NSData *)data toPeers:(NSArray *)peerIDs withMode:(MCSessionSendDataMode)mode error:(NSError **)error;

2.发送本地图片或文件使用

- (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandler;

3.Streaming (of audio) - 使用音频流和会话,您可以发送数据包。但是蓝牙的带宽限制是一个瓶颈。

我认为文件大小没有上限,而使用第二种方法,使用 NSProgress,您也可以显示加载视图。

【讨论】:

以上是关于我可以通过 iOS Multipeer Connectivity 发送多大的消息?的主要内容,如果未能解决你的问题,请参考以下文章

Multipeer Framework iOS 可靠

iOS8 AVAudioEngine如何通过Multipeer Connectivity发送麦克风数据?

在 Swift 中通过 Multipeer Connectivity 临时同步两个 iOS 设备

Multipeer Connectivity iOS 7中的invitePeer超时

iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser 找到自己了吗?

Multipeer Connectivity IOS:didFinishReceivingResourceWithName 错误处理(崩溃)