项目需求
本文的历史情况,请先了解:https://segmentfault.com/a/11...
BUG问题
- 重复消息异步存储数据只存储一次
- 前端页面没有回车监听
项目架构
修复思路
第一版的临时存储使用的是LinkedHashSet但是
HashSet 与 LinkedHashSet 两者都不能保存重复的数据。主要区别是HashSet不保证集合中元素的顺序,即不能保证迭代的顺序与插入的顺序一致。而LinkedHashSet按照元素插入的顺序进行迭代,即迭代输出的顺序与插入的顺序保持一致。
因此换成了LinkedList,支持重复数据并顺序处理。
前端的修复则是添加了回车监听方法
document.onkeydown=function(e) {
if (e.keyCode == 13) {
var message = document.getElementsByClassName('msg')[0].value;
socket.send(message);
console.log(message);
document.getElementsByClassName('msg')[0].value = "";
}
}
项目效果
GitHub
项目名:InChat
项目地址:https://github.com/UncleCatMy...
项目介绍:基于Netty4与SpringBoot,聊天室WebSocket(文字图片)加API调用Netty长链接执行发送消息(在线数、用户列表)、Iot物联网-MQTT协议、TCP/IP协议单片机通信,异步存储聊天数据
如果本文对你有所帮助,欢迎关注个人技术公众号
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。