在去年,我们公司内部实现了一个聊天室系统,实现了一个即时在线聊天室功能,可以进行群组,私聊,发图片,文字,语音等功能,那么,这个聊天室是怎么实现的呢?后端又是怎么实现的呢?...根据消息的类型,我们区分了 私聊消息,群消息,系统消息 3种消息,设计了3个表
为了使得客户端能够正常显示群消息,我们对群成员做了软删除处理,确保可以获取到群成员头像
用户可通过http接口,获得历史聊天记录...:{"total":0,"list":[]},"msg":"ok","msgType":1,"flagId":111}
每次推送完,都需要客户端遍历list,进行上面的已接收推送
聊天室流程讲解
整个聊天室流程为...:
- 用户http接口登录获得授权
- 通过授权请求http接口获得好友列表,不同好友的最后一条未读消息以及未读消息数(用于首页显示)
- 通过授权请求获得群列表(群消息为了节省存储空间没有做已读未读...)
- 建立ws链接
- 注册断线重连机制,当触发close事件时,重连ws
- 建立ping定时器,每隔30秒进行一次ping
- 通过ws接口,获得所有未读消息,客户端进行处理,推送到通知栏等
-