【系统概述】
- 使用Node.js+socket.io建立socket连接
- 编写独立客户端页面
- 编写独立客服进入页面
编写一个可以一(客服)对多(客户)的在线客户服务系统,实现同时接收多个咨询。
【系统界面预览】
![](https://i-blog.csdnimg.cn/blog_migrate/b83c758f104527042a509db507e4d845.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4c0dadfe9c4cf8eeffd5565e362b1034.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7a78e94928a12d31a02689a7b2fd13f7.png)
【实现步骤】
一、安装node.js
可在node.js官网下载安装,安装后可在cmd输入命令 node -v,回车 及 npm -v,回车,出现版本号,表示安装成功!
二、安装socket.io
cd到网站根目录下(如 我的网站目录在D盘>phpStudy>www>chat目录下 ),输入npm install socket.io回车
安装socket.io
三、编写聊天界面和逻辑
聊天界面没啥说的,有兴趣可直接下载源码
①如何实现一对一的聊天?
设置room(房间),对应的房间显示对应消息。每条消息都传入参数room,在客户端解析,消息格式如下:
msg={
type:0,//type表示用户角色,0为咨询客户,1为客服
room:room,//房间id,对应的房间才能接收到消息
username:uname,//发送人姓名
message:text,//消息字符串
msg_type:0//消息类别,0为文字,1为xls文件,2为pdf
time:''//发送时间
}
②如何实现一(客服)对多(客户)服务?
其实在页面中,我们所有的消息都接收到了,这就好办了,我们把所有接收到的消息根据发送者来分类即可实现客服一对多咨询服务。
【后期优化】
一、客服人员未进入系统时,该如何保存客户发送的消息
最基本的应该还是存储在数据库中,待客服登陆后再提取数据加载到页面来。
![](https://i-blog.csdnimg.cn/blog_migrate/d498f0ec36bc40c2daa809758c9aa5b5.png)
二、消息加密
以上方法中,每个页面都可以接收到全部消息,所以并不安全。我们可以通过字符串加密提升信息安全性,可参考文章:https://blog.csdn.net/gzyh_tech/article/details/94592829
除以上外,系统还存在高并发及网络延迟等问题,欢迎大家讨论!