上一篇文章完成了验证消息的接收,这篇文章本打算做好友间互发消息,但是做的时候发现会话列表的存储还没做。就是会话列表中有会话的情况下,关闭了软件,然后再次登录后,应该要复现会话列表。因此本篇文章将实现会话列表的存储及复现逻辑。至于删除会话操作,先不做,等项目大体上全部完成,后期优化的时候再做。
首先,我们需要在所有能够产生新会话的地方进行存储。目前只有两处,一个是首次接收验证消息的时候产生的验证消息会话,一个是接收到了验证消息“同意”的反馈之后产生的用户会话。由于要做的事情是一样的,因此,我们写了一个用于存储会话列表的方法,和存储验证消息列表类似:
public void saveTalkPanelToFile(TalkMessage tm)
{//需要保存的是什么?
StreamWriter sw = new StreamWriter(talkFilePath, true);
sw.WriteLine(tm.Account + Common.splitFlag + tm.NickName+ Common.splitFlag+ tm.SubMessage + Common.splitFlag+ tm.Time);
sw.Flush();
sw.Close();
}
takFilePath是一个字段:
private string talkFilePath = "talk.db";
我们只需要在那两处地方调用即可。贴出关键代码: