1

有人可以引导我阅读有关使用 Apple 的 Multipeer Framework for iOS 的可靠选项如何用于 sendData 的文档吗?据我所知,它保证了以正确的顺序交付,但是当对等点之间的连接不可靠时会发生什么?当两个设备重新连接时,它们会恢复传输吗?如果接收者永久消失,那么告诉发送者的应用程序消息失败以开始恢复的机制是什么?发件人的出站队列在什么时候被清除?谢谢!

4

1 回答 1

0

在没有任何信息的情况下,我实现了一个编号的数据包方案,发送者向接收者发送一个顺序的“数据包”编号和一个嵌入在数据中的预先分配的发送者 ID,在崩溃、重启等过程中保持不变。所有传输都在如果需要重新发送,则发送者。当接收方收到消息时,它会提取“数据包”编号并执行以下三个操作之一:

  • 如果它是预期的下一个数据包(基于跟踪已经从发送方收到的数据包),它会处理它并告诉发送方将其从其传输队列中删除。
  • 如果一个数据包编号被跳过,它会忽略它并要求发送者重新发送队列中以该数据包开头的所有内容。
  • 如果包号已经被接收到,它会丢弃它作为一个副本,尽管它会通知发送者它可以将它从它的传输队列中删除。

在正常操作中,此方案依赖于“可靠”设置来按顺序传递消息。但是,第二个和第三个选项在断开/重新连接的情况下至关重要,因为它可以防止重复和丢失消息。

于 2018-08-11T10:17:19.507 回答