主页 > 前端 > javascript >
来源:自学PHP网 时间:2017-05-15 09:44 作者: 阅读:次
[导读] 这篇文章主要为大家详细介绍了WebSocket实现简单客服聊天系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...
|
一 需求 一个多商家的电商系统,比如京东商城,不同商家之间的客服是不同的,所面对的用户也是不同的。要实现这样一个电商系统的客服聊天系统,那该系统就必须是一个支持多客服、客服一对多用户的聊天系统。 二 思路 使用 Node.js 搭建服务器,安装 websocket 模块、node-uuid模块。通过在客服端和用户端传递 客服ID 和 用户ID 来进行消息的传送。 三 具体实现 3.1 搭建 Node 服务器 参考本人前面的文章 《Centos6.8 下 Node.js 的安装》。 3.2 安装 ws 模块、node-uuid 模块 npm install ws npm install ws 3.3 创建 server.js 在项目里面新建一个server.js,创建服务,指定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的连接,并实现向服务器端发送消息(下面是主要代码,仅供参考)
<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 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学php网。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com