
一个要求
像京东商城这样的多商家电子商务系统具有不同的客户服务和不同的用户. 要为此类电子商务系统实现客户服务聊天系统,该系统必须是支持多个客户服务和一对多用户服务的聊天系统.
两个想法

使用Node.js构建服务器并安装websocket模块和node-uuid模块. 通过在客户服务端和用户端传递客户服务ID和用户ID来传输消息.
三个具体实现
3.1构建节点服务器

参考我以前的文章“在Centos6.8下安装Node.js”.
3.2安装ws模块,node-uuid模块
npm install ws npm install ws

3.3创建server.js
在项目中创建一个新的server.js,创建一个服务websocket实现单聊,并指定端口8906(以下是主要代码,仅供参考)
const WebSocket = require('ws');
onst wss = new WebSocket.Server({ port: 8906 });
const uuid = require('node-uuid');
// 省略一些参数的定义
// 服务端处理连接
wss.on('connection', function(ws) {
console.log('client [%s] connected', clientIndex);
var connection_uuid = uuid.v4();
var nickname = "AnonymousUser" + clientIndex;
clientIndex += 1;
clients.push({ "id": connection_uuid, "ws": ws, "nickname": nickname });
//服务器收到消息时
ws.on('message', function(e) {
var data = JSON.parse(e);
var type = data.type;
// 省略业务处理逻辑
});
// ws连接关闭时触发的操作
ws.on("close", function () {
websocketClose();
});
// 省略函数 websocketClose()、wsSend()、socketClose 的定义
// 聊天服务器关闭所触发的操作
process.on("SIGINT", function () {
console.log("SOCKET CLOSED!");
("客服已关闭,请稍后再来");
process.exit();
});
});

3.4创建customer.html
此页面是用户页面. 在页面上建立WebSocket连接并将消息发送到服务器(以下是主要代码websocket实现单聊,仅供参考)
<script>
//建立连接
const ws = new WebSocket("ws://22.33.66.88:8906");
var client_id = '';
//ws连接打开后的操作
ws.onopen = function (e) {
//向服务器发送该ws连接的用户信息
};
//收到消息处理
ws.onmessage = function (e) {
// 省略
};
//ws连接出错所触发的操作
ws.onerror = function (e) {
// 省略
};
//ws连接关闭时所触发的操作
ws.onclose = function (e) {
// 省略
};
// 省略函数 appendLog()、sendMessage()、sendMessage2()、wsSendMessage() 的定义
</script>
3.5创建customerService.html
此页面是客户服务页面,类似于customer.html. 有关代码,请参阅customer.html
以上是本文的全部内容,希望对大家的学习有所帮助,也希望大家都支持dt猫.
链接到本文
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-228993-1.html
甲午海战前基本上就已经决定了北洋水师的失败
休渔期结束
大发