day01-项目开发流程

多用户即时通讯系统01

1.项目开发流程

2.需求分析

  1. 用户登录
  2. 拉取在线用户列表
  3. 无异常退出(包括客户端和服务端)
  4. 私聊
  5. 群聊
  6. 发文件
  7. 服务器推送新闻/广播

3.设计阶段

3.1界面设计

  1. 用户登录:

image-20220920182438430

  1. 拉取在线用户列表:

image-20220920182554305

  1. 私聊:

image-20220920182653008


image-20220920182712818

  1. 群聊:

image-20220920182846445


image-20220920182903138


image-20220920182920638

  1. 发文件:

image-20220920183046013


image-20220920183214104

  1. 文件服务器推送新闻:

3.2通讯系统整体设计

总结:

服务端:

  1. 当有客户端连接到服务器后,服务端会得到一个socket

  2. 启动一个线程,该线程持有该socket对象,也就是说socket是该线程的属性

  3. 为了更好的管理线程,需要使用集合来管理(如:HashMap)

客户端:

  1. 和服务端通信时,使用对象方式,可以使用对象流来读写

  2. 当客户端连接到服务端后,也会得到socket

  3. 启动一个线程,该线程持有socket

  4. 为了更好的管理线程,也将该线程放入到集合中

4.编码实现

4.1功能实现-用户登录

4.1.1功能说明

因为还没有学习数据库,我们认为规定 用户名/id = 100,密码为 123456 就可以登录,其他用户不能登录,后面使用HashMap模拟数据库,可以多个用户登录。

image-20220920184736385

4.1.2思路分析+框架图

5.测试阶段

6.实施阶段