# 智能在线客服 **Repository Path**: l_2022/kefu ## Basic Information - **Project Name**: 智能在线客服 - **Description**: 基于vue+node+socket+vant+mysql实现的在线客服系统,前后端分离,浏览器指纹作为访客唯一id,内置chatGPT智能回复,采用RSA加解密数据,防sql注入,xss,可发送图片表情、查询历史消息、留言、踢人等,更多功能等待后续更新。 简单快速部署,基本每隔几行我都有写备注,可读性强,目前功能不是很多,欢迎进行二次开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 20 - **Created**: 2024-03-25 - **Last Updated**: 2024-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 1.介绍 + 基于vue+node+socket+vant+mysql实现的在线客服系统,前后端分离,浏览器指纹作为访客唯一id,采用RSA加解密数据, 防sql注入,xss,可发送图片表情、查询历史消息、留言、踢人、排队等待,更多功能等待后续更新。简单快速部署,基本每隔几行我都有写备注,可读性强, 目前功能不是很多,欢迎进行二次开发 ------------------------------------------------------------------------------------------------- ### 2.在线地址 + 已经解决https跨域问题,在线访问时请使用https协议访问,在线预览的后端目前是没有配置http的。 + 在线体验地址(客服端):https://ctrlc.cc/kefu/index.html#/customerService 账号密码都是666 + 在线体验地址(用户端):https://ctrlc.cc/kefu/#/ ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ### 3.实现截图 ![截图1](https://47image.oss-cn-heyuan.aliyuncs.com/github/kefu/11.jpg) ![截图2](https://47image.oss-cn-heyuan.aliyuncs.com/github/kefu/12.jpg) ![截图3](https://47image.oss-cn-heyuan.aliyuncs.com/github/kefu/13.jpg) ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ### 4.实现功能 + 实时聊天,发送文字、图片、表情、查看历史消息 + 留言与回复留言 + 中英文 + 同一个浏览器多开窗口会强制另一个窗口下线 + 用户端手机电脑布局适 + 客服端设置昵称、设置同时最多连接人数,超过指定次数后面的用户连接时会进入排队等待(如果某个用户下线导致其它的被排挤掉,这是因为你用了同一个浏览器) + 客服端可以快捷回复、自定义设置快捷回复 + 可以连接指定客服、随机连接客服,指定连接客服时如果客服不在线,登录后会有离线消息记录 ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ### 5.信息扩展 + 通过在网站首页路径添如:'http://localhost:9528/#/?extend=U2FsdGVkX19Cu72hsUuXB3HswRh0dwhfXfd8h7lblZnSnCIz/nQVzj1Niqt94tcTrlnZ8T08ljc/LdmTYWXQC4nw2l1MnFmA8okbGezLsxDst4rHp3B/6Y/rM6R/JzoG',格式必须是'?extend=xxxxxxxxx'的格式 + 示例文件在“信息扩展加密方式demo.html”里面,请自行查看 + 把获取出来的结果拼接到路径上面'http://localhost:9528/#/' +'?extend=U2FsdGVkX19Cu72hsUuXB3HswRh0dwhfXfd8h7lblZnSnCIz/nQVzj1Niqt94tcTrlnZ8T08ljc/LdmTYWXQC4nw2l1MnFmA8okbGezLsxDst4rHp3B/6Y/rM6R/JzoG' + 你传进来的值会在客服端查看用户时右侧面板的信息栏显示,其中"userName"字段会覆盖原有的默认用户名称字段,serviceType字段会指定加载指定类型的客服,其它均作为自定义数据展示 ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ### 6.本地部署说明 + 环境说明:node版本最低16,有些依赖要求最低版本为16,低于16可能会报错。service为node后端,socket为vue前端,后端端口号3030,前端端口号9528。数据库使用mysql,数据库名chat,如果mysql不兼容导入错误,先创建一个空数据库,把chat.sql打开复制,在mysql可视化工具里粘贴进行sql执行。代码默认是使用http协议,如需使用https协议请看下面部署说明。 + 找到service\config.js文件,更换你自己的数据库账号密码 + 以上都修改好了之后: cd 进入service文件夹: 安装依赖:npm install ;运行:node serve 或者 npm run serve cd进入socket文件夹: 运行:npm run serve ;安装依赖:npm install ;打包:npm run build + 运行起来或打包之后,用户端访问路径为:http://localhost:9528/#/ 客服端访问路径为: http://localhost:9528/#/customerService + 部署之后将客服使用a标签打开就行了 `打开示例` 点我直接打开客服示例 ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ### 7.服务器部署说明 + 找到socket\src\config.js文件,确保environment为build,apiUrl更换为: http://xx.你的ip地址.xx:3030,一定要使用ip地址,不要使用localhost + 部署时不要把后端丢在网站目录下面 + 图片默认保存在数据库,部署到服务器需要更改的话,请自行打开service/config.js修改配置 ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- ### 8.服务器https协议部署说明 + 找到socket\src\config.js文件,确保apiUrl的后端路径是https协议,如:https://xx.xx.com:3030 + 找到service\service.js文件,有注释提示,将指定http那部分代码注释掉,然后取消https那部分代码的注释 + 在service.js中找到代码: const options = { key: fs.readFileSync('./ctrlc.cc.key'), cert: fs.readFileSync('./ctrlc.cc.pem'), }; 配置域名证书路径 + 如果有任何疑问:直接加QQ 3217454073 -------------------------------------------------------------------------------------------------