需要对用户提供注册账号、登录、找回密码的功能模块
用户登录后从服务器获取好友列表及群组列表
双击后产生一个聊天窗口,同时如果有消息到达应该产生消息提示
文件传输功能 客户端将文件上传到服务器,服务器接收文件后产生文件链接,用户点击链接下载文件。
当退出登录的时候向服务器发送一个quit请求。
监听用户的请求,同时检测用户是否在线。两手准备防止一些客户端进程意外终止导致的错误。
对注册、登录、聊天、发送文件、下载文件的事件做出相应的响应。同时需要写数据库。服务器采用读写分离,
创建的客户线程仅用于读如客户端读入的消息,在创建若一个线程将消息队列的消息写给用户
聊天协议的话我们采用TCP协议。
首先需要一个前缀:
1、用户信息表格 (用户ID、用户昵称、用户密码)
2、好友关系表格 (用户ID、好友ID、好友昵称)
3、群表 (群ID、群主ID,群昵称)
4、群友表 (群ID、用户ID)
5、消息表 (用户ID、群聊ID、好友ID、消息类型、消息体,消息状态,创建时间)
(待发送|已发送)