客服系统Golang源码

news2025/7/27 23:00:32

客服系统

概述

采用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

体验

客服端: 浏览器打开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/

运行截图

客服端

客服端

客户端

客服端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes集群基于kubeadm部署以及常见问题解决

文章目录集群类型主机规划环境初始化检查操作系统版本关闭防火墙设置主机名主机名解析时间同步关闭 SELinux关闭 swap 分区将桥接的IPv4流量传递到iptables的链开启ipvs安装容器运行时(Docker)卸载Docker旧版本:安装 gcc 相关安装Docker设置阿…

Vivado_AXI Quad SPI_IP核

填一下前面的坑。 介绍关于Vivado中AXI Quad SPI v3.2的使用方法。 参考资料:pg153-axi-quad-spi.pdf,可自行在官网下载。 以该IP核的Standard SPI Mode的使用为例。 Address Space OffsetRegister NameAccess TypeDefault Value (hex)Description40hS…

【JavaSE】抽象类

前言: 作者简介:爱吃大白菜1132 人生格言:纸上得来终觉浅,绝知此事要躬行 如果文章知识点有错误的地方不吝赐教,和大家一起学习,一起进步! 如果觉得博主文章还不错的话,希望三连支持&#xff01…

知物由学 | 弹幕蜂拥而入,智能审核平台如何用技术破局?

导读:弹幕的出现增加了视频观看者的深度参与感,弹幕也逐渐成为国内各大视频网站最基本的评论交互形式,本文将通过网易易盾在弹幕实现原理及交互方式方面的实践,具体介绍弹幕相较于传统聊天室的区别与实践经验,希望能为…

【检索资讯】2022年控制理论与应用国际会议(ICOCAT 2022)已成功被EI检索

ICOCTA 2022(www.icocta.org) 2022年控制理论与应用国际会议(ICOCAT 2022)已成功被EI,Scopus检索,作者可自行登录EI数据库查询检索, ICOCTA 2023会议预告 重要信息 会议官网:www.i…

新品速看丨创新微MinewSemi正式推出GNSS高精度卫星定位导航模块

致力于GNSS、蓝牙、Wi-Fi、LoRa、UWB等物联网无线模块研究的一站式供应商——创新微MinewSemi近日推出了数款基于多种卫星导航授时、多星多频、具有低功耗、高灵敏度、抗干扰、高性能的工业级GNSS高精度定位模块。 此次推出的GNSS模块各有特点,满足用户不同需求&…

【LeetCode】用队列实现栈和用栈实现队列(C语言)

目录 1.用队列实现栈 增删 求栈顶元素 判断栈为空 2.用栈实现队列 增删 返回队列开头的数据 判断队列为空 尾言 源码 队列实现栈 栈实现队列 刚讲完栈和队列,LeetCode上有两题栈与队列的互相实现,简单地讲讲思路和实现吧。 1.用队列实现栈 原题地址&am…

婴幼儿蛋白质过敏怎么回事

很多孩子吃了含蛋白质的食物后会出现瘙痒或痱子等过敏症状,甚至全身发红。这是因为一些过敏体质的孩子儿童会对蛋白质过敏。婴儿蛋白质过敏会导致一些严重的问题,那么当婴儿蛋白质过敏发生时,该怎么以下是一个详细的介绍!目录蛋白…

[Spring Boot]08 IDEA接入MyBatisCodeHelper代码自动生成器

目录前言一、插件市场安装插件二、使用插件自动生成代码前言 上次介绍了,原生mybatis的方法: 06 Spring Boot接入mybatis通用mapper插件自动生成器。 这次,再介绍下插件MyBatisCodeHelper-Pro的用法,使用此方法更加简单和方便。 …

老照片修复工具哪个好?这几个修复软件你快看看

相信我们很多小伙伴的爷爷奶奶家里都会有很多老照片,这些照片由于年代久远,或多或少都会有些损坏,不是泛黄就是有些褶皱,如果我们想将照片进行流传下去,肯定就是将其修复并重新洗出来啦。要是不想出门找专业的摄影师修…

Spring Boot 整合 MyBatis Plus实现多数据源的两种方式

第一种&#xff1a;使用配置类的方式&#xff1a; 项目结构 xml依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-ins…

hadoop 3.3大数据集群搭建系列3-安装Hive

文章目录一. 下载hive二. 解压三. 添加Hive核心配置&#xff0c;选择远程MySQL模式四. 下载连接MySQL的驱动包到hive的lib目录下五. MySQL下创建hive数据库六. 执行Hive的初始化工作七. 验证初始化是否成功八. 使用hive参考:一. 下载hive cd /home/software wget https://mirr…

简单搭建redis哨兵集群

文章目录简单搭建redis哨兵集群配置参数说明配置部署哨兵集群检查哨兵状态其他配置踩坑记录简单搭建redis哨兵集群 配置参数说明 sentinel monitor mymaster 10.0.0.4 6379 指定对一个 master 的监控&#xff0c;给监控的 master 指定的一个名称。 sentinel down-after-mill…

Ubuntu配置NFS服务器(Linux挂载Linux)

Ubuntu配置NFS服务器 服务器端的配置 Ubuntu安装NFS服务器端 sudo apt-get install nfs-kernel-server服务端查看版本 nfsstat -s在桌面上创建共享目录 mkdir share修改/etc/export配置文件&#xff0c;在后面添加如下语句 /home/xxx/桌面/share *(rw,sync,no_root_squas…

Java异常处理机制

文章目录异常的概念引入的小例子基本概念异常体系图常见异常分类常见的运行时异常编译异常异常处理try-catch-finallythrows小练习自定义异常自定义异常的步骤throw与throws练习题异常的概念 引入的小例子 public class Exception01 {public static void main(String[] args)…

如何在图片上添加水印?快把这些方法收好

相信有些小伙伴经常会在网络上&#xff0c;分享自己拍摄的图片吧。那大家是否有遇到过发布的图片&#xff0c;被其他人盗用&#xff0c;并在其它平台上发布的情况呢&#xff1f;其实我们可以在图片上添加上个人水印&#xff0c;这样子就可以有效减少图片被人盗用的情况。那你们…

【springboot】20、Spring Boot 整合 MyBatis

文章目录基本介绍1、引入相关依赖2、数据库基本配置3、编写mapper接口和映射文件4、指定Mapper文件的位置5、测试总结基本介绍 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果…

英伟达RTX 4080正式发布!这一波是谁赢麻了?

在RTX40系列发布之前&#xff0c;我一直以为今年经济不行&#xff0c;直到看到大家抢购4090的样子&#xff0c;才发现只有我的经济不行。 距离英伟达 RTX 4090显卡的发布已经过去了一个月&#xff0c;40系列家族又出一员大将——英伟达 RTX 4080&#xff0c;公版定价9499在上市…

什么是RC低通滤波电路

滤波电路顾名思义就是滤除不需要的信号&#xff0c;保留需要的信号&#xff0c; 其中无源RC滤波电路要数最简单的滤波电路了。 电路图的话大家加可以看下&#xff0c;包含一个电阻和电容。 低通的话就是频率低的信号可以无衰减的通过&#xff0c;频率高得信号会产生衰减&#…

主成分分析(机器学习)

目录 主成分分析&#xff08;PCA&#xff09;是最常用的线性降维方法 设有m条n维数据&#xff0c;PCA的一般步骤如下 主成分分析&#xff08;PCA&#xff09;是最常用的线性降维方法 它的目标是通过某种线性投影&#xff0c;将高维的数据映射到低维的空间中 并期望在所投影的…