作者 : RedCrazyGhost
gantt
title Chat聊天室开发周期
dateFormat YYYY-MM-DD
section RedCrazyGhost
Server :Server,2021-11-25,10d
Server和Client联调整合 :after Server,10d
section 客户端-Home
Client-HomeView :HomeView,2021-11-25,10d
Chat系统PPT :after HomeView,10d
section 客户端-System
Client-SystemView :SystemView,2021-11-25,10d
Chat系统实验报告 :after SystemView,10d
RedCrazyGhost
RedCrazyGhost
flowchart TD
程序启动-->数据库配置
数据库配置-->手动配置
数据库配置-->默认配置
手动配置-->数据库测试连接
默认配置-->数据库测试连接-->|失败|程序关闭
数据库测试连接-->|成功|开启选择器-->ServerSocketChannel配置-->聊天室启动-->监听选择器事件-->连接事件-->SocketChannel配置-->删除当前活动
监听选择器事件-->可读事件-->获取SocketChannel-->|JSON|反射创建类调用方法
反射创建类调用方法-->|JSON|判断发送对象-->|JSON|Client-->删除当前活动-->监听选择器事件
flowchart LR
subgraph Client["客户端"]
客户端启动-->配置目标服务器-->
HomeView-->|选择1|注册账号-->输入注册用户名-->输入注册密码-->输入注册邮箱-->注册结果显示-->
HomeView---->|选择2|登陆账号-->输入登录用户名-->输入登陆密码-->登陆结果显示
HomeView-->|选择3|找回密码-->输入找回用户名-->输入找回邮箱-->找回密码结果显示-->HomeView
HomeView-->|选择4|退出客户端-->客户端关闭
登陆结果显示-->|登陆成功|SystemView
登陆结果显示-->|登陆失败|HomeView
SystemView-->|选择1|查询在线人员结果---->查询在线人员结果显示-->
SystemView-->|选择2|私聊-->输入私聊对象-->输入私聊内容-->私聊内容显示-->
SystemView-->|选择3|群聊-->输入群聊内容-->群聊信息显示-->
SystemView-->|选择4|修改密码-->输入旧密码-->输入新密码-->修改密码结果显示-->
SystemView-->|选择5|注销账号-->输入密码-->|注销失败|SystemView
输入密码-->|注销成功|HomeView
SystemView-->|选择6|退出系统----->HomeView
end
subgraph Server["服务端"]
监听选择器事件-->可读事件-->获取SocketChannel-->|JSON|反射创建类调用方法-->判断发送对象-->删除当前活动-->监听选择器事件
end
Client-.->|JSON|Server
Server-.->|JSON|Client
sequenceDiagram
autonumber
par 私聊流程 1-4
Client1->>+Server:Client2-你今天吃的什么?
Server-->>-Client2:Client1:你今天吃的什么?
Client2->>+Server:Client1-清真的牛肉拉面
Server-->>-Client1:Client2:清真的牛肉拉面
end
par 群聊流程 5-16
Client3->>+Server:All-群里面有人吗?
Server-->>Client3:群聊:Client3:群里面有人吗?
Server-->>Client2:群聊:Client3:群里面有人吗?
Server-->>-Client1:群聊:Client3:群里面有人吗?
Client1->>+Server:All-我在群里啊!
Server-->>Client3:群聊:Client1:我在群里啊!
Server-->>Client2:群聊:Client1:我在群里啊!
Server-->>-Client1:群聊:Client1:我在群里啊!
Client2->>+Server:All-我也在群里啊!
Server-->>Client3:群聊:Client2:我也在群里啊!
Server-->>Client2:群聊:Client2:我也在群里啊!
Server-->>-Client1:群聊:Client2:我也在群里啊!
end
par 混合聊天流程 18-22
Client3->>+Server:All-群里面有人吗?
Server-->>Client3:群聊:Client3:群里面有人吗?
Server-->>Client2:群聊:Client3:群里面有人吗?
Client2->>+Server:Client1-今天你打算去哪里玩?
Server-->>-Client1:Client2:今天你打算去哪里玩?
Server-->>-Client1:群聊:Client3:群里面有人吗?
end
database:
url: 'jdbc:mysql://127.0.0.1:3306/Chat?characterEncoding=UTF-8'
username: 'root'
password: '123456'
字段名 | 数据类型 | 约束 | IS NOT NULL | 主键 |
---|---|---|---|---|
username | varchar(255) | 长度1到10,只支持中文、英文、数字、下划线 | ✅ | ✅ |
password | varchar(255) | 长度6到18,只支持英文、数字、下划线 | ✅ | |
varchar(255) | email格式 | ✅ |
字符串示例: {"body":{"password":"test","username":"test"},"head":{"PATH":"Home-login","TOKEN":"(username)","ENCODING":"GBK"}}
key | value | 说明 |
---|---|---|
PATH | "Home-login/Clinet" | 路径 Client-View-Home-Login 取后2个名称 路径使用小写命名 |
TOKEN | "(username)" | 身份 无值传空 通过算法进行处理 |
TO | "username" | 发送用户名 |
ENCODING | "GBK" | Client编码 |
key | value |
---|---|
request-username | "testname" |
request-password | "123456" |
request-email | "[email protected]" |
response-message | "操作成功!" |
flowchart TD
subgraph Server
添加用户
查询用户
删除用户
修改用户
服务端通道
在线用户
私聊
群聊
数据库
日志
end
序号 | 完成情况 | 功能模块 | 模块名称 |
---|---|---|---|
1 | ✅ | Server-Function-CreateUser | 服务端-功能-添加用户 |
2 | ✅ | Server-Function-SelectUser | 服务端-功能-查询用户 |
3 | ✅ | Server-Function-DeleteUser | 服务端-功能-删除用户 |
4 | ✅ | Server-Function-UpdateUser | 服务端-功能-修改用户 |
5 | ✅ | Server-Function-ServerSocketChannel | 服务端-功能-服务端通道 |
6 | ✅ | Server-Function-OnlineUser | 服务端-功能-在线用户 |
7 | ✅ | Server-Function-OneToOne | 服务端-功能-私聊 |
8 | ✅ | Server-Function-OneToMore | 服务端-功能-群聊 |
9 | ✅ | Server-Fucntion-DataBase-DataManage | 服务端-功能-数据库-数据管理 |
10 | ✅ | Server-Fucntion-Log | 服务端-功能-日志 |
flowchart TD
subgraph Client-HomeView
用户注册
用户登录
找回密码
程序退出
end
序号 | 完成情况 | 功能模块 | 模块名称 |
---|---|---|---|
1 | ✅ | Client-View-Home-Create | 客户端-首页-显示-用户注册 |
2 | ✅ | Client-View-Home-Login | 客户端-首页-显示-用户登陆 |
3 | ✅ | Client-View-Home-RetrievePassword | 客户端-首页-显示-找回密码 |
4 | ✅ | Client-View-Home-Quit | 客户端-首页-显示-系统退出 |
5 | ✅ | Client-Function-Home-Create | 客户端-首页-功能-用户注册 |
6 | ✅ | Client-Function-Home-Login | 客户端-首页-功能-用户登陆 |
7 | ✅ | Client-Function-Home-RetrievePassword | 客户端-首页-功能-找回密码 |
8 | ✅ | Client-Function-Home-Quit | 客户端-首页-功能-系统退出 |
flowchart TD
subgraph Client-SystemView
查看在线人员
私聊
群聊
修改密码
账号注销
退出系统
end
序号 | 完成情况 | 功能模块 | 模块名称 |
---|---|---|---|
1 | ✅ | Client-View-System-OnlineUser | 客户端-系统首页-显示-在线人员 |
2 | ✅ | Client-View-System-OneToOne | 客户端-系统首页-显示-私聊 |
3 | ✅ | Client-View-System-OneToMore | 客户端-系统首页-显示-群聊 |
4 | ✅ | Client-View-System-DeleteUser | 客户端-系统首页-显示-账号注销 |
5 | ✅ | Client-View-System-ChangePassword | 客户端-系统首页-显示-账号密码修改 |
6 | ✅ | Client-View-System-Quit | 客户端-系统首页-显示-系统退出 |
7 | ✅ | Client-Function-System-OnlineUser | 客户端-系统首页-功能-在线人员 |
8 | ✅ | Client-Function-System-OneToOne | 客户端-系统首页-功能-私聊 |
9 | ✅ | Client-Function-System-MoreToMore | 客户端-系统首页-功能-群聊 |
10 | ✅ | Client-Function-System-DeleteUser | 客户端-系统首页-功能-账号注销 |
11 | ✅ | Client-Function-System-ChangePassword | 客户端-系统首页-功能-账号密码修改 |
12 | ✅ | Client-Function-System-Quit | 客户端-系统首页-功能-系统退出 |