【问题标题】:Multi-Peer Connectivity in iOS 7 transfers incredibly slowiOS 7 中的多点连接传输速度非常慢
【发布时间】:2013-11-04 00:50:43
【问题描述】:

我正在尝试使用 iOS 7 中新的多点连接框架传输 2 兆字节的数据。我发现发送和接收 2 兆字节的数据至少需要 5 分钟。这似乎很奇怪。这是在同一个房间里的 iPhone 5S 和 iPad 3 之间。无论是否启用或禁用 WiFi 或蓝牙以及是否打开/关闭可靠,都会出现问题。

// self.session is an open MCSession, packet is the 2 MB of data, reliable is YES or NO, both are slow
[self.session sendData:packet toPeers:peers withMode:MCSessionSendDataReliable error:&error];

【问题讨论】:

  • 两者都可以启用,但您能确认哪个正在使用吗?不要对蓝牙抱太大希望
  • 如何判断正在使用哪一个?
  • 您可以先禁用蓝牙并再次测试。这将排除正在使用蓝牙的可能性。
  • 我会尝试不使用蓝牙。似乎 Apple 会选择最快的机制,但我会在关闭蓝牙的情况下发布我的结果。
  • 关闭蓝牙后,我还有 2 分钟,仍在等待消息接收事件...

标签: ios7 multipeer-connectivity


【解决方案1】:

我很确定这是因为 iPad 3 是瓶颈。从 iPhone 5S 传输到我的 MacBook Air 上的 iPad 模拟器传输 10 MB 文件大约需要 1 秒。我的理论是,只有启用 AirDrop 的设备才能获得更快的传输速度 - http://en.wikipedia.org/wiki/AirDrop

编辑我的假设是错误的,两部 iPhone 5s 之间的传输速度一样慢 :(

EDIT 改用 Stream API 好多了

编辑在我的路由器上调整 wifi 频道设置有助于提高性能,但它似乎仍然比应有的速度慢。 10 MB 传输现在需要 30-60 秒而不是 5 分钟。

编辑我通过将图像转换为比 PNG 小得多的 JPEG2000 解决了这个问题,尽管传输速度仅为每秒 100K,但现在在合理的 5-10 秒内完成。请参阅此 stackoverflow 答案:How do I convert UIImage to J2K (JPEG2000) in iOS?

编辑禁用加密也有助于提高传输速度

【讨论】:

  • 一项改进是在选择丢帧时使用 MCSessionSendDataUnreliable
  • @PeterLapisu 我好像记得做过,但还是有问题
  • 我正在做转移 aprx。每秒 20k 并且不断下降:/ 很遗憾,框架不能做得更好......还有帮助的是禁用加密和修复 iOS7 中的问题
  • 我是流图片,但我不是使用stream的方式,只是普通的发送数据,你觉得使用stream会更好吗?
  • @PeterLapisu 流式传输方法会更好,如果您发送比小数据包更大的任何内容,则应该切换到它。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 2019-09-10
  • 2016-05-21
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多