首先要安装两个包
npm install express express-ws -S
然后写入代码,你可以直接替换我的jsonAll换成你想要的参数,专门用来测试用的,这里设置的时间是2s可以自行修改
var express = require('express');
var app = express();
require('express-ws')(app);
const jsonALl = { //替换成你想要的参数
a: 111
}
const clients = []//这里要把每个用户的链接存入对象中然后发送
app.ws('/ws', function (ws, req) {
var client_uuid = new Date().getTime()//这里存上不同的id,也可以用别的,因为时间戳有时候也有重复
clients.push({
id: client_uuid,
ws: ws,
time:null
})
sendInfo();//链接成功后进行发送消息
ws.on('message', function (msg) {//接受消息
console.log(msg)
});
ws.on('close', function (msg) {//如果对方关闭要对数组进行删除避免再次发送
for (let i = 0; i < clients.length; i++) {
if (clients[i].id == client_uuid) {
clients.splice(i, 1);
}
}
})
})
function sendInfo() {//这里就是定时发送
clients.forEach(item => {
item.time = setInterval(() => {
if (item.ws.readyState == 1) {
item.ws.send(JSON.stringify(jsonALl));
}else{
clearInterval(item.time)
}
}, 2000)//时间修改在这里
})
}
app.listen(3000);//启动的是3000端口
下面我们看看前端怎么接收
<script>
var ws = new WebSocket('ws://localhost:3000/ws');
ws.onopen = function() {}
ws.onmessage = function(e) {//因为这里就是单纯的想要得到数据所以没有发送消息的过程可以自己添加;
console.log(e.data)
}
</script>