项目设计思路

项目总图  

项目设计思路_第1张图片

 一,顺序实现

登录注册——>资料编辑——>添加/删除好友、群聊——>发送消息

二,项目实现功能

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。(广播就是一对多)

针对不同的消息做出响应的动作、反馈。

并发性——>多线程。(这里应该是整个项目最关键的地方)

你可能感兴趣的:(java,数据结构)