源码
技术栈
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对应的表
群的使用
有点麻烦,每次都要点击添加
总结
这个项目跟进了几个月,虽然真正写的时间很少,但是这个确实让自己明白了自己是多么的无知,
做项目前应该考虑全盘属性,而不是走一步算一步,建立全局关,代码格式不规范,命名不清楚
后期维护难,感觉后期都在重新写架构,但是毕竟也是第一个项目,很多不懂还是正常,全部靠自己手写,
不过感觉写这些还是看文档快,上手就能学到东西