采用Golang语言,基于 gRPC + [Mongo+ Vue3+Websocket+RabbitMQ]来实现系统
用户侧逻辑采用匿名注册模式,Token采用JWT技术,服务端不保存Token信息,用户每次使用检测Token合法时返回新的Token来达到续期的目的
后端分为 客户服务,客服服务,客户用户中心,客服用户中心
客户服务: 创建、打开会话,发送、接受消息,关闭会话客服服务: 与客户前端通过gRPC 双向流来通信沟通。内容包括: 与当前服务的客户发送、接收消息,等待服务的客户列表、变动,开始、停止服务客户Token前端当前仅实现了Web端,通过websocket服务器与后端沟通
allinone - gRPC [Mongo]适用于单体服务器能支撑业务的场景,所有服务都集成在一个程序里, 所有客户、客服的沟通都通过回调函数来解决
配置文件中
Dev->UseMemoryModel来配置是使用内存还是Mongo来保存用户和会话信息. 如果内存保存,则服务重启后数据清零
gRPC Mongo RabbitMQ客户服务客服服务客服用户中心服务可横向扩展
App - 未实现gRPCWeb端Web端WebSocket服务器WebSocket服务器Golang, npm,vue# 下载库
git clone https://github.com/zservicer/talkbe.git
git clone https://github.com/zservicer/talkfe.git# 开一个窗口,运行后端程序
cd talkbe
cp config.yaml.allinone.sample config.yaml
cp ws_config.yaml.sample ws_config.yaml
go run cmd/allinone/main.go# 开一个窗口,运行前端程序
cd talkfe
npm install
npm run server
客服端: 浏览器打开http://127.0.0.1:8080
具体端口号可以看
npm run server的提示。登录用户名/密码为: demo/123456
用户端: 浏览器打开talkfe工程的demo/customer/talk.html
客服端: https://kf.ymipro.com/
登录用户名/密码为: demo/123456
用户端: https://www.ymipro.com/


上一篇:石子合并系列问题
下一篇:Linux17 --- 消息队列