公司的项目需要开发客服模块,之前没有深入了解过网络编程相关技术,这次花点时间学习下.对比了mina和netty,感觉netty优势多些,就学了netty,做个相关项目练练手.
1.项目结构
2.新建数据库demo-netty,并导入脚本文件,修改以下配置信息
3.运行Application.java启动springbboot内嵌tomcat,默认端口8080,浏览器访问:http://localhost:8080/
4.匿名登录,并给客服1发送消息
5.客服登录,serv01/123456(注意:必须要先登录着才能收到消息,离线状态无法接收消息)
点击有新消息,获取用户列表,点击用户头像获取消息
6.多人聊天室
项目采用springboot+springmvc+netty-sockeyio实现简单的一对一聊天和聊天室多人聊天,前端比较差,用的是素材模版,所以改得比较戳,项目存在以下若干问题:
1)聊天记录没有保存的,页面一刷新就没有了;
2)匿名用户与客服对话,是把匿名客户端以目标客服为key放入缓存的,但是用户端口连接时,无法清除相关缓存数据map.remove(key,value),我的理解是value值相同,但是对象的指向不同,希望清楚的大神帮忙解答下
上面两种方式都无法清除缓存指定数据:
3)前端有些逻辑问题
4)给离线的用户发送消息,该用户上线也无法接收到信息
5)一个用户可以找多个客服咨询,一个客服可以服务多个用户,我想过建个多对多的中间表,但是实际做起来感觉不理想;也想过加个字段存放有消息的用户,后来想想也觉得不理想..这个问题解决了,问题1,2,3,4就都不是问题了
6)第一次做即时通讯的东西,出来消息接收发送,对话用户之间的关系依存和消息存放都不知道怎么去处理,请懂的大神提供些思路,不甚感激!
资源下载地址:http://download.csdn.net/detail/u013198917/9846723