不耦合任何业务(xxx项目目前正在改进这个架构,还未上线)维持着长连接,如果升级更新的话,势必会影响在线用户的连接状态偶尔部分业务,降低长连接的稳定性缺点改进:IM 关键技术点技术点一之: 如何保证消息可达...服务端就会重发或者转离线存储(xxx项目的机制立即转离线存储)对于在线消息, 一发一收,正常情况当然不会有问题对于离线消息, 可能有很多条.怎么保证不乱序?...(这个重要)服务端生成msgid服务端进行好友检测(A/B)服务端进行重复发送检测服务端获取B的连接信息,并判断在线状态如果在线,直接发送给B,并入cache和db如果不在线,直接存储.如果是ios,则进行...apns.在线的B,收到消息后回应ack进行确认.用户A发送消息到群C存储结构未读索引列表未读消息索引存在的意义在于保证消息的可靠性以及作为离线用户获取未读消息列表的一个索引结构。...考虑离线考虑网络异常对于离线消息,存储方式/存储结构要怎么设计?考虑会有多个人发送消息考虑缓存+db的方式如何保证消息不丢,不重? 怎么设计消息防丢失机制?