WebSocket实现简单客服聊天系统
一需求
一个多商家的电商系统,比如京东商城,不同商家之间的客服是不同的,所面对的用户也是不同的。要实现这样一个电商系统的客服聊天系统,那该系统就必须是一个支持多客服、客服一对多用户的聊天系统。
二思路
使用Node.js搭建服务器,安装websocket模块、node-uuid模块。通过在客服端和用户端传递客服ID和用户ID来进行消息的传送。
三具体实现
3.1搭建Node服务器
参考本人前面的文章《Centos6.8下Node.js的安装》。
3.2安装ws模块、node-uuid模块
npminstallws npminstallws
3.3创建server.js
在项目里面新建一个server.js,创建服务,指定8906端口(下面是主要代码,仅供参考)
constWebSocket=require('ws');
onstwss=newWebSocket.Server({port:8906});
constuuid=require('node-uuid');
//省略一些参数的定义
//服务端处理连接
wss.on('connection',function(ws){
console.log('client[%s]connected',clientIndex);
varconnection_uuid=uuid.v4();
varnickname="AnonymousUser"+clientIndex;
clientIndex+=1;
clients.push({"id":connection_uuid,"ws":ws,"nickname":nickname});
//服务器收到消息时
ws.on('message',function(e){
vardata=JSON.parse(e);
vartype=data.type;
//省略业务处理逻辑
});
//ws连接关闭时触发的操作
ws.on("close",function(){
websocketClose();
});
//省略函数websocketClose()、wsSend()、socketClose的定义
//聊天服务器关闭所触发的操作
process.on("SIGINT",function(){
console.log("SOCKETCLOSED!");
("客服已关闭,请稍后再来");
process.exit();
});
});
3.4创建customer.html
该页面是用户页面。在页面上建立一个WebSocket的连接,并实现向服务器端发送消息(下面是主要代码,仅供参考)
3.5创建customerService.html
该页面是客服页面,类似于customer.html,代码方面可参考customer.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。