Java-多用户即时通信系统-需求分析
一、简介
- 目前不考虑前端页面的绘制,仅结合集合、多线程、IO流以及网络编程相关知识实现核心的多用户通信,文件传输功能;
- 项目开发的一般流程:
- 需求分析
- 设计阶段
- 实现阶段
- 测试阶段
- 实施和运维阶段
1.1 客户端-服务器端通信整体架构分析
- 客户端-服务器端数据交互以对象形式进行(如Message、User等);
1.1.1 单个客户端
- 通过一对Socket对象通信;
1.1.2 多个客户端
- 通过多对Socket对象进行通信;
- 多对Socket对象需要能够并发地占用CPU,因此对于客户端和服务器端的每一个Socket对象都创建一个线程;
- 服务器需要能够群发消息给每个客户端,因此需要采用集合来管理所有与客户端关联的线程;
- 一个客户端可能需要与服务器端建立多个线程(多条Socket通道),用于处理不同的任务,因此在客户端也需要采用集合来管理与服务器端关联的所有线程;
二、需求分析
- 用户登录
- 拉取在线用户
- 无异常退出*(不是简单的System.exit(0))*
- 客户端
- 服务器端
- 私聊
- 群聊
- 发文件
- 服务器推送新闻
写完私聊后,发现群聊,发文件,本质上也是发送数据,暂停了,不想写了。