你这是不是太复杂了。每个消息一个 ID,每次发送都有回执不就行了?
没回执的就定个时间点重发,重发不过就显示失败,反正 ID 一样,不会在客户端显示两次。
时间顺序,如果有服务器就更简单了,按服务器接收的顺序排序就行了。客户端自行保证发送的顺序是正常的。没有没服务器的 P2P 就相当麻烦,,要考虑到每个客户端的时间不一样,还有可能调整时间,目前我还没想到什么好办法。
IM 不是关键业务消息队列,只做尽最大努力地投递。投递失败就跟用户说。用户也不会怪你的啊。
【 在 leadu (leadu) 的大作中提到: 】
: 可以选择重发方式,在重发之前需要考虑以下问题:
: 1.如何知道消息发送失败?
: 2.在多大的一个时间窗口之内要知道失败?
: ...................
--
FROM 110.81.42.*