最近想实现一个即时通讯系统,但是对消息确认机制的实现还没有一个很好的思路。比如,客户端给某个好友发送消息,服务端负责转发消息,但是转发成功或是失败,需要通知发送者。如果发送失败或超时需要客户端重发。还有就是转发给接收者后,服务器要等待一个ACK来确认客户端已经收到消息了,如果超时还没收到就需要重新转发。如何设计这个消息确认机制呢。我能想到的是使用状态机+序列号+定时器,有没有更好的方式。