# 3.3:对话通知与应答

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!

# 一、前言

在我们使用微信的时候都会看到有一个聊天发送信息的地方左面是“好友栏”,但是这个好友栏可不是你的所有好友,而是与谁对话了才会在这里看到好友信息,我们称之为这个为对话框列表。这让我想起最开始我爸爸妈妈使用微信的时候,经常会说我好友咋找不到了,头几天还跟我说话了呢。而且也不敢删这里面的记录,后来就越来越卡越来越卡。不过现在是玩明白了,还熟的很!

那么,从产品流程角度看,这个好友栏是怎么有的数据呢,有如下几种情况;

  • 当你从好友列表中选择一个好友进行对话时候,点击“发送信息”。
  • 当你收到一条来自好友的消息时候,当然也包括一些群组消息。

好,有了问题和分析,我们就可以来实现对话框的功能了。

# 二、流程设计

  • 从整体的流程可以看到,在用户发起好友、群组通信的时候,会触发一个事件行为,接下来客户端向服务端发送与好友的对话请求。
  • 服务端收到对话请求后,如果是好友对话,那么需要保存与好友的通信信息到对话框中。同时通知好友,我与你要通信了。你在自己的对话框列表中,把我加进去。
  • 那么如果是群组通信,是可以不用这样通知的,因为不可能把还没有在线的所有群组用户全部通知(人家还没登录呢),所以这部分只需要在用户上线收到信息后,创建出对话框到列表中即可。可以仔细理解下,同时也可以想想其他实现的方式。