要求
- 保证消息可达,不可以丢失
- 保证消息有序
- 用户离线,消息在重新登录后依然能够正常获取
- 希望尽可能的减少数据库的操作
现在的思路
- 群组消息共享,每个用户通过在群组中上次ACK的消息的msg_id或者time来获取最新的消息
- 新的消息到来时,
- 所有的在线用户投递相应的消息,ACK之后删除掉相应的消息
- 离线用户
- 不做任何操作,但是用户在上线拉取离线消息的时候,需要来去自己所有群组的离线消息
- 标记上用户的哪个群组有新消息进入,这样每个离线用户都要有一个操作,但是登录时不需要逐个查询所有的群组
期望
离线的用户,即不用任何的操作,也不需要每次上线的时候,都查询所有的群组队列?