聊天系统

源码

github

技术栈

Springboot+websocket+原生前端+jq+ajax+mybatis

功能

登录系统

通过ajax与后端交互,thymeleaf渲染判断用户是否登录

注册

注册和登录技术产不多

在线人数

显示的是好友在线,双击js中的friend_id保存就是当前点击的id值,
然后通过websocket发送的是json格式的数据{"toName":id,"Message":data,"type":type}
其中type是发送群聊还是当用聊天,如果是group表示是群聊,那么通过后端的websocket发送给所有的好友,同个数据库查询到该好友

//Map键是用户id值是用户对应的socket
 private static Map<String,WebSockTest> webSocketSet=new ConcurrentHashMap<>();//并发
  //群发就是得到对应的socket然后发送给某个用户,一个for循环就行

添加好友

同个数据库调用,
在添加的时候,讲自己用户表中的对方好友状态定为'1',
将对方表中自己id定位'0',如果对方同意就是'2'

等待对方添加

ajax 轮转

拉黑

将自己用户表中的好友设置属性0/1

建群

数据库麻烦
在数据库中建立一个表

create table if not exists idwithgroup(
  id varchar(100),
  groupid varchar(100)
);

然后通过mybatis调用得到属性值,得到groupid对应的表

群的使用

有点麻烦,每次都要点击添加

总结

这个项目跟进了几个月,虽然真正写的时间很少,但是这个确实让自己明白了自己是多么的无知,

做项目前应该考虑全盘属性,而不是走一步算一步,建立全局关,代码格式不规范,命名不清楚

后期维护难,感觉后期都在重新写架构,但是毕竟也是第一个项目,很多不懂还是正常,全部靠自己手写,
不过感觉写这些还是看文档快,上手就能学到东西

posted @ 2022-12-03 16:14  壹剑霜寒十四州  阅读(51)  评论(0编辑  收藏  举报