一、前言
在我们使用微信的时候都会看到有一个聊天发送信息的地方左面是“好友栏”,但是这个好友栏可不是你的所有好友,而是与谁对话了才会在这里看到好友信息,我们称之为这个为对话框列表。这让我想起最开始我爸爸妈妈使用微信的时候,经常会说我好友咋找不到了,头几天还跟我说话了呢。而且也不敢删这里面的记录,后来就越来越卡越来越卡。不过现在是玩明白了,还熟的很!
那么,从产品流程角度看,这个好友栏是怎么有的数据呢,有如下几种情况;
- 当你从好友列表中选择一个好友进行对话时候,点击“发送信息”。
- 当你收到一条来自好友的消息时候,当然也包括一些群组消息。
好,有了问题和分析,我们就可以来实现对话框的功能了。
二、流程设计
- 从整体的流程可以看到,在用户发起好友、群组通信的时候,会触发一个事件行为,接下来客户端向服务端发送与好友的对话请求。
- 服务端收到对话请求后,如果是好友对话,那么需要保存与好友的通信信息到对话框中。同时通知好友,我与你要通信了。你在自己的对话框列表中,把我加进去。
- 那么如果是群组通信,是可以不用这样通知的,因为不可能把还没有在线的所有群组用户全部通知(人家还没登录呢),所以这部分只需要在用户上线收到信息后,创建出对话框到列表中即可。可以仔细理解下,同时也可以想想其他实现的方式。