我可以通过 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 发送多大的消息?的主要内容,如果未能解决你的问题,请参考以下文章
iOS8 AVAudioEngine如何通过Multipeer Connectivity发送麦克风数据?
在 Swift 中通过 Multipeer Connectivity 临时同步两个 iOS 设备
Multipeer Connectivity iOS 7中的invitePeer超时
iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser 找到自己了吗?
Multipeer Connectivity IOS:didFinishReceivingResourceWithName 错误处理(崩溃)