IM即时通讯-会话列表和会话信箱(六)
IM即时通讯从0到1的实践,基于golang+gin,redis+mongodb,vue+mui,实现了单聊、离线消息、好友申请等,以及文末对应答机制、重传机制、避免消息重复的探讨。
·
会话列表是什么?
会话列表其实大家都不陌生,就是这个
会话列表有什么作用?
很直观的作用就是,记录你都跟谁聊天了,有没有未读消息;
用户离线了,有人发送消息过来,服务端会存储离线消息,并更新会话;用户上线后,看到会话有未读消息,打开会话,从服务端拉取离线消息显示,同时,服务端会删除存储的离线消息。
会话信箱又是什么呢?
会话信箱是存在于客户端的,用来存储当前的会话消息,比如你跟张三聊天了,那你们的聊天内容就会存在对应的会话信箱中。
会话信箱必要?
可以不必要,但是消息存在哪呢?
存服务器,就算不考虑海量消息的存储成本,每次打开会话都要向服务器请求获取消息,单单这个响应时间,就不能忍受了;没网了呢,连历史消息都不能看了,所以这是相对的必要。
一个例子
客户端-A向客户端-B发送一条消息,会话列表和会话信箱扮演的角色:
客户端-A端想向客户端-B端发送消息,客户端-A就要在会话列表中找到与客户端-B的会话,并打开,发送消息;
客户端-B收到消息后,对应的会话(客户端-A)未读消息+1,且消息会存储到会话信箱-1中,B用户看到有未读消息,点开会话(客户端-A),从会话信箱中载入消息,显示出来。
这里只是简单描述会话列表和会话信箱,具体的作用还需根据自身业务设计。
IM即时通讯从0到1的实践,相关文章:
IM即时通讯-会话列表和会话信箱(六)<本文>
IM即时通讯-1.0版成果展示与后续扩展(七)
更多推荐
已为社区贡献1条内容
所有评论(0)