Java-多用户即时通信系统-需求分析

Java-多用户即时通信系统-需求分析

一、简介

  • 目前不考虑前端页面的绘制,仅结合集合多线程IO流以及网络编程相关知识实现核心的多用户通信,文件传输功能;
  • 项目开发的一般流程:
    • 需求分析
    • 设计阶段
    • 实现阶段
    • 测试阶段
    • 实施和运维阶段

1.1 客户端-服务器端通信整体架构分析

  • 客户端-服务器端数据交互以对象形式进行(如Message、User等);
1.1.1 单个客户端
  • 通过一对Socket对象通信;

一对Socket对象通信

1.1.2 多个客户端
  • 通过多对Socket对象进行通信;
  • 多对Socket对象需要能够并发地占用CPU,因此对于客户端和服务器端的每一个Socket对象都创建一个线程
  • 服务器需要能够群发消息给每个客户端,因此需要采用集合来管理所有与客户端关联的线程;
  • 一个客户端可能需要与服务器端建立多个线程(多条Socket通道),用于处理不同的任务,因此在客户端也需要采用集合来管理与服务器端关联的所有线程;

多个客户端

二、需求分析

  • 用户登录
  • 拉取在线用户
  • 无异常退出*(不是简单的System.exit(0))*
    • 客户端
    • 服务器端
  • 私聊
  • 群聊
  • 发文件
  • 服务器推送新闻
写完私聊后,发现群聊,发文件,本质上也是发送数据,暂停了,不想写了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SEA-365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值