• 客服系统Golang源码


    客服系统

    概述

    采用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 - 未实现

    • gRPC

    Web浏览器

    • 客户Web
    • 客服Web

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    体验

    客服端: 浏览器打开http://127.0.0.1:8080

    具体端口号可以看npm run server的提示。

    登录用户名/密码为: demo/123456

    用户端: 浏览器打开talkfe工程的demo/customer/talk.html

    在线Demo

    客服端: https://kf.ymipro.com/

    登录用户名/密码为: demo/123456

    用户端: https://www.ymipro.com/

    运行截图

    客服端

    客服端

    客户端

    客服端

  • 相关阅读:
    IDEA DeBug 调试工具详解
    Java设计模式-建造者模式
    本次CTF·泰山杯网络安全的基础知识部分
    Rust源码分析——Rc 和 Weak 源码详解
    2022最新iOS最新打包发布流程
    TRC心血管研究之艾美捷TRC高血压研究领域
    【数据结构】栈和队列的实现(C语言)
    WPF事件详解
    hive 之with as 和create view 和create temporary table用法
    面试题常考:LRU缓存
  • 原文地址:https://blog.csdn.net/stwstw0123/article/details/127920281