websocket简单通信
首先创建服务端,打开一个空文件夹
初始化 npm init -y
安装依赖 npm install nodejs-websocket
新建一个server.js文件,代码如下:
// 导入websocket node对象
var ws = require('nodejs-websocket');
//创建 连接通道数组
var connList = [];
//创建websocket服务器 conn->连接通道
var server = ws.createServer(function(conn){
//将连接通道添加到数组中保存
connList.push(conn);
//连接成功 conn与客户端连接通道
console.log("New connection",connList.length)
//接收客户端发送的数据
conn.on("text",function(str){
//打印接收的数据
console.log(conn.key+"发送的数据:",str);
//遍历连接数组 并发送数据
for(var i=0;i<connList.length;i++){
//将数据发送给当前连接的客户端
connList[i].sendText(str)
}
})
//关闭连接 通道被关闭
conn.on("close",function(code,reason){
console.log("connection closed")
//将当前连接通道从数组中移除
connList.splice(connList.indexOf(conn),1)
console.log("当前连接数量:",connList.length)
})
//异常事件,连接通道出现异常时触发
conn.on("error",function(code,reason){
console.log("异常事件",reason)
})
}).listen(9898,function(){
console.log("websocket server is listening on port 9898")
})
客户端代码如下
// 建立websocket 并与服务器建立连接通道
var ws = new WebSocket("ws://localhost:9898");
//设置websocket接收消息事件
ws.onmessage = function(e){
console.log(JSON.parse(e.data));
}
//向服务端发送消息
ws.send(发送的内容); //如何是数组对象,需要转化为JSON数据格式
//关闭连接
ws.onclose = function()
{
// 关闭 websocket
alert("连接已关闭...");
};