项目总图
一,顺序实现
登录注册——>资料编辑——>添加/删除好友、群聊——>发送消息
二,项目实现功能
1,登录:账号密码登录或者邮箱验证码登录(邮箱验证码QQ邮箱登录)
2,注册:使用邮箱发送验证码注册(QQ邮箱)
3,找回密码:邮箱发送验证码找回(QQ邮箱)
4,用户修改个人资料:头像,姓名,性别,生日,个签。
5,修改密码:使用邮箱发送验证码来确认修改(QQ邮箱)
6,群资料修改:群名
7,添加好友,删除好友,添加群,创建群,解散群,退出群,管理群。(添加好友或者添加群要有审核,解散群通知群成员,创建群可以拉人,退出群发通知给群主及管理员,管理群包括群主撤回别人发出的消息、设置管理员、群消息、踢出群成员。)
8,发送消息:私聊和群聊及群发(文字,文件,语音,表情,图片,常用语,聊天记录)。(I/O实现)
三,实现功能点所需知识点
基于TCP的socket通信
java编写实现本地后端
maven,Git
实现对javafx的stage控制器,并自定义stage基类。(界面设置)
四,主要构成
1、客户端
用户端连接服务器成功后需要登录验证,窗口切换到聊天室对话主界面(也就是列表界面)。
动态更新在线用户列表,并可以直接在列表中选择聊天对象。
分为私聊和群聊,使用TCP开线程发送各类消息和指令。
聊天消息实时更新:聊天对话框的消息气泡显示。
2、服务器需要考虑的:
消息中转:单播和广播——>需要保存各个用户的socket。(广播就是一对多)
针对不同的消息做出响应的动作、反馈。
并发性——>多线程。(这里应该是整个项目最关键的地方)