你这个方案进一步细化了一些,刚才我提的问题可以细化一些,当然还是那些问题:
1.什么时候给ack?服务器收到即给么?服务器给了ack之后崩溃了怎么办?投递成功给ack,那群聊怎么办?ack拖得时间太长怎么办?
2.ack丢了怎么办?都报用户消息发送失败了但最后一次重试实际成功了
3.id怎么生成,多客户端怎么处理?
4.ack的时候用户撤回了消息怎么办?
之前说了,东西不难,但少考虑了一定会丢消息,对于im来说,丢一条消息就是严重事故
【 在 hgoldfish 的大作中提到: 】
: 你这是不是太复杂了。每个消息一个 ID,每次发送都有回执不就行了?
: 没回执的就定个时间点重发,重发不过就显示失败,反正 ID 一样,不会在客户端显示两次。
: 时间顺序,如果有服务器就更简单了,按服务器接收的顺序排序就行了。客户端自行保证发送的顺序是正常的。没有没服务器的 P2P 就相当麻烦,,要考虑到每个客户端的时间不一样,还有可能调整时间,目前我还没想到什么好办法。
: ...................
--
FROM 61.49.152.*