项目需求

本文的历史情况,请先了解: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协议单片机通信,异步存储聊天数据


如果本文对你有所帮助,欢迎关注个人技术公众号

图片描述


Java猫说
1.3k 声望930 粉丝

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。