这是使用JSP+WebSocket制作的在线聊天室。代码本是从网上找到,自己修改了一些。效果仍不算理想,许多功能未曾实现,比如添加好友等。
- 登录、注册(注册需要邮箱验证)
- 聊天室聊天,使用了Ueditor
- 修改个人资料
- 显示在线用户
- 添加好友
- 私聊
- 过滤某人的信息
- 保存聊天记录
做添加好友的时候,因为websocket里onmessage事件调用send()方法会导致连接断开,就没有继续了,日后有更好的办法会完善。
-
聊天界面
- 代码来源 https://gitee.com/loopcc/WebSocketChat/
- 固定了底部输入框所占高度,让页面占满屏幕,聊天记录部分高度为屏幕高度-顶部高度-底部高度
- Ctrl+Enter快捷键发送消息,但是一定要先按下Ctrl再按Enter
- 使用了 Web Worker 计算页面未发送消息的间隔时长,2分钟自动断开连接。
-
登录页面
- 代码来源 http://www.jsdaima.com/webpage/1009.html
- 这个页面未改动太多,就连验证登录是否成功的提示也只是一个警告框
-
注册页面
- 代码来源 http://www.jsdaima.com/webpage/1248.html
- 把背景换成了登录页面的
- 把手机号码验证换成邮箱验证
- js逻辑十分复杂,比如验证邮箱已经存在等
-
修改信息页面
- 用的就是登录注册页面的模板,只是用ajax提交修改
- 使用了Bootstrap的导航菜单
- 修改的逻辑基本与注册相似,只是对每一项信息分别进行修改
-
JAVA后台
- 发送邮件注册
- MVC模式增删查改,代码来源于模板,自己完善了一些
- 查看在线用户的页面是抽出来的,点击按钮后发送ajax获取并显示,以实时更新
- 过滤器,不登录无法修改信息,会跳转到登录页面
- 每次发消息,头像文件路径都随着消息传递,这样每次都会从服务器请求头像文件,可能存在性能问题
- 为了方便,只在少数地方使用JS严格模式,并且未完全遵循jslint规范,因此大部分代码并不规范
- 未使用token,安全性方面不完善
- 仅有注册并登录后才能修改信息,但是不登录也能以匿名身份进入聊天室
- 注册有邮箱验证码验证,需要更改src/mail/SendMailText.java授权邮箱
- c3p0数据库连接配置文件在src文件夹中,需要根据实际情况设置
- 数据库sql文件在data文件夹中
- 不保证修改了以上配置之后必定能正常运行
- 就算能运行,也可能会乱码
代码不太完善,希望大家发现问题后能够告诉我,邮箱:kill370354@qq.com。