本文不讲然后代码方面的东西,只聊方案!!
这方案基于 Spring Boot 2.6+、Netty、MyBatis Plus、Redis 构建的一套支持 单体应用 的在线客服系统。 系统支持客户自由与后台客服实时聊天、客服未在线钉钉提醒通知客服、消息已读未读标记、消息已送达未送达标记,消息持久化记录等核心功能。
技术选型
组件 | 技术选型 |
---|---|
后端框架 | Spring Boot 2.6 + MyBatis-Plus |
网络通信 | Netty 4.x + Protobuf 3 |
文件存储 | 阿里云OSS + CDN加速 |
数据库 | MySQL 8.0 + Redis 6 |
前端框架 | Vue3 + Element Plus |
部署环境 | Docker + Kubernetes /linux服务器(可选) |
整体流程图
时序图
如果是文件那些先走oss的上传获取url,然后服务端正常发送聊天消息即可,注意:文件本身是不走
nettyServer
的,随后前端进行渲染提供下载按钮即可提供的oss上传接口需要支持分片上传,断点续传,安全校验等
这是一个单体的聊天落地方案,后续会出支持分布式集群的方案以及代码
可加功能
- 消息撤回
- 消息删除
- 消息转发
- 消息引用
结束语
欢迎个位大佬指出不足(轻点喷),有什么不懂的也可以私聊