|
@@ -1,104 +0,0 @@
|
|
|
-`2020-12-28 18:08:38 星期一`
|
|
|
-
|
|
|
-------------
|
|
|
-### 该仓库共有三项目
|
|
|
-### [SocketDemo](http://39.108.133.138:3000/weiyong/202012G09/src/master) - 初版
|
|
|
-### [LinkChat](http://39.108.133.138:3000/weiyong/202012G09/src/linkchat) - 拓展
|
|
|
-### [ChatRoom](http://39.108.133.138:3000/weiyong/202012G09/src/chatroom) - 终版
|
|
|
-------------
|
|
|
-
|
|
|
-# SocketDemo
|
|
|
-
|
|
|
-## 『 环境 』
|
|
|
-
|
|
|
-#### jdk:1.8
|
|
|
-
|
|
|
-#### 数据库 : MySQL5.7
|
|
|
-
|
|
|
-#### 建表如下:
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-#### 注:is_online在线时为1,离线时为0。(默认为0)
|
|
|
-
|
|
|
-## 『 模式 』
|
|
|
-
|
|
|
-#### 采用C/S模式,使得各个客户端通过服务端转发来实现即时通讯的功能。
|
|
|
-
|
|
|
-## 『 思路 』
|
|
|
-
|
|
|
-
|
|
|
-#### 由于202012G09小组的成员都没有服务器
|
|
|
-#### 但我们又有着手实现的迫切需求 于是提出下面的思路:
|
|
|
-
|
|
|
-
|
|
|
-> 如下图:
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-#### - 将服务端内置到客户端 两端一体
|
|
|
-#### - 每个客户端都成为自己的服务器 则免去中间服务器端
|
|
|
-#### - 如此一来,发送和接收都在本机上不同客户端进行
|
|
|
-
|
|
|
-
|
|
|
-## 『 模块 』
|
|
|
-
|
|
|
-- ### Register(注册)
|
|
|
- ##### 绘制窗口(注册界面)
|
|
|
- ##### 实现注册功能
|
|
|
- >Tip:
|
|
|
- 监听注册事件
|
|
|
- 不能空输入,输入的两次密码必须一致。
|
|
|
- 插入数据库=>将注册客户的账号密码存储
|
|
|
- 自动插入前面一位+1的端口
|
|
|
-
|
|
|
- - Dialogs1:
|
|
|
- 绘制注册验证对话框(确认注册成功并跳转至登录界面)
|
|
|
-
|
|
|
-- ### Login (登录)
|
|
|
- ##### 绘制窗口(登录界面)
|
|
|
- ##### 实现登录功能
|
|
|
- >Tip:
|
|
|
- 监听注册按钮
|
|
|
- 点击注册跳转注册界面
|
|
|
- 监听登录事件
|
|
|
- 查询数据库=>验证账号密码及在线状态(存在且离线才能登录)
|
|
|
- 更新数据库=>更新客户在线/离线状态
|
|
|
- 查询数据库=>查询客户的服务端端口
|
|
|
- 开启服务端,开启客户端
|
|
|
-
|
|
|
- - Dialogs4:
|
|
|
- 绘制登录验证对话框(确认登录成功并跳转至好友列表)
|
|
|
-
|
|
|
-- ### Online (线上)
|
|
|
- ##### 绘制窗口(好友列表)
|
|
|
- ##### 实现好友列表
|
|
|
- >Tip:
|
|
|
- 监听选择/聊天/退出登录事件
|
|
|
- 查询数据库=>查询在线用户
|
|
|
- 显示用户到好友列表
|
|
|
- 更新数据库=>退出时更新用户在线/离线状态
|
|
|
- 点击聊天跳转至聊天界面
|
|
|
-
|
|
|
-- ### Connect (连接)
|
|
|
- ##### 绘制窗口(聊天界面)
|
|
|
- ##### 实现聊天功能
|
|
|
- >Tip:
|
|
|
- 通过多线程分别创建/开启客户端和服务端
|
|
|
- 客户端连接聊天对象的服务端,服务端连接聊天对象的客户端
|
|
|
- 循环不断的发送和接收/写入和读取
|
|
|
- 将接收和发送的数据在界面上显示
|
|
|
- 断开时关闭聊天功能的一切服务
|
|
|
-
|
|
|
-
|
|
|
-## 『 效果 』
|
|
|
->
|
|
|
-
|
|
|
->
|
|
|
-
|
|
|
->
|
|
|
-
|
|
|
->
|
|
|
-
|
|
|
-
|