之前写过简单的聊天项目,有些简陋,只是实现的消息的网络转发。这次想写个更多功能的,类似于QQ的聊天项目

一、想实现以下功能:

1、建群组   2、私聊、群聊   3、可以传递文字,语音类型   4、具有登陆,退出功能   5、数据库中用户密码可以加密

*未实现语音聊天

二、可能需要用到的技术

1、网络编程

2、多线程

3、数据库

4、Swing

三、准备工作(2019/7/23)

1、工具:IDEA  jdk1.8  maven

2、添加依赖:JUnit-单元测试、json-网络数据传递、mysql-数据库支持、druid-alibaba数据源、lombok-通过简单的注解,消除臃肿的代码

3、登陆界面背景图,设计登陆、注册界面

4、写大致框架

四、编写代码(2019/7/23——2019/9/6)

https://github.com/ZhaoFan7/chatroom2

五、项目测试
    功能
        正常
            邀请码
                邀请码正确
                邀请码错误
            注册
                用户名
                    注册的用户名类型
                        字符
                        特殊字符
                        空
                        表情
                    长度(边界值)
                        20
                        21
                密码
                    密码类型
                        字符
                        特殊字符
                        空
                        表情
                    长度(边界值)
                个性签名
                    密码类型
                        字符
                        特殊字符
                        空
                        表情
                    长度(边界值)
                注册姓名一样的用户
                一个线程注册多个用户
                查看数据库中的用户密码是否加密
                注册成功,返回登陆页面
                注册失败,弹出提示框,重新注册,或者选择返回登陆界面
            登录
                用户名与密码
                    用户名,密码正确登陆
                    用户名或密码错误登陆
                    用户名或密码为空登陆
                重复登陆
                登录用户上限
                登录按钮
                登录成功,各个在线用户接收到用户登录消息,并将其加入到好友列表中
                登录成功,会在好友列表中加载各个在线用户信息,滚动查看好友列表
            建群
                勾选好友,填写群名
                    勾选好友,填写群名创建群
                    不勾选好友,填写群名
                    勾选好友,不填写群名
                    不勾选好友,不填写群名
                创建同名群
                    同一用户创建
                    不同用户创建
                创建同成员群
                    同一用户创建
                    不同用户创建
                群名
                    群名类型
                        字符
                        特殊字符
                        空
                        表情
                    长度(边界值)
            私聊
                发送消息的类型
                    字符
                    特殊字符
                    空
                    表情
                    文件
                发送消息的长度
                消息记录的滚动查看
                消息记录删除
                消息记录改变
                同时开启多个私聊窗口
                一方发起私聊,另一方弹出消息界面
                私聊界面的关闭
                私聊界面重新启动时,消息记录是否存在
                明确是否谁在私聊
                好友退出后私聊界面的情况
            群聊
                启动私聊的测试
                查看群组成员
                好友退出后群组成员情况
            退出
                各个在线接收到好友离线消息
                用户A离线后自己所有的私聊,群聊界面关闭
                群组成员里面没有离线用户
                好友列表中没有离线用户
                离线后再次登录
                    是否还在群组中
                    与好友的私聊页面记录是否还在
        异常
            1、网络异常
            2、数据库连接不上
            3、客户端非正常关闭
            4、服务器非正常关闭
    性能
        注册多个用户查看响应时间
    安全
        用户名密码加密数学推导明文与密文为1对1的关系
    界面
        弹出界面的大小是否还需要手工再次调整
        弹出界面的位置是否还需手工再次调整
        按钮位置设计是否合理
    易用
        上手简单
        功能明确
        功能齐全
        消息记录,好友列表,群组列表的滚动查看

六、项目总结

 chatroom2是我写的聊天室第二个版本,实现了界面化。代码量共计2027行


项目简介:
类似于qq的聊天项目,但有所区别的是,它更适合于一个组织内部使用,因为只要有邀请码就可以注册,只要登陆,就会自动添加所有人为好友,可以与所有用户聊天,还可以创建群组聊天

实现功能:
1、注册功能
- 邀请制:有邀请码的用户才能成功注册
- 数据库中没有注册的用户名时才能成功注册
- 注册到数据库中的密码实现了加密,数据库管理员不能通过查看用户账号密码登录别人的账号
- 注册成功时注册的界面消失,注册失败时提醒注册失败,注册页面保存
 2、登陆功能
- 用户名、密码输入正确(可以在数据库中查询到)可登录,登录成功进入好友列表页面
3、私聊功能
- 点击用户列表中的好友名字可进入私聊功能
 4、建群功能
- 点击用户列表中的创建群组,弹出创建群组页面,勾选群中要邀请的人,起群名后点击确认,将信息提交到服务器
- 客户端收到服务器发过来的建群消息,创建群组,刷新群组列表
 5、群聊功能
- 点击群组列表中的群名,可进入群聊功能

应用技术:
 1、网络编程
- 在网络中传输客户端与服务器的数据
2、JDBC
- 将用户注册数据传送到数据库,用户登录时在数据库中查找是否存在此用户信息,用户信息存在且正确时用户登陆成功
 3、Swing
- 将程序界面化
 4、多线程
- 服务器端:实现与多个客户端的数据传输(为每个客户端创建一个线程)
- 客户端 :主线程实现发送数据给服务器,创建守护线程不断监听并处理服务器发送过来的数据

5、运行

服务器启动

客户端启动

点击注册

输入邀请码——邀请码错误

输入邀请码——邀请码正确,弹出注册页面

注册

登录:

开启第二、三个客户端,并登录

 

点击好友名字,进行私聊

创建群组

点击群组名,进行群聊

点击群列表中的好友标签同样可以进行私聊

点击好友列表中的退出

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐