websoket
demo项目 https://demos.ackuikui.com/im-web/
前端
var ws = new WebSocket('wss://ackuikui.com:3333/');
// 连接成功
ws.onopen = function () {
// getOldMsg()
}
// 接受消息
ws.onmessage = function (e) {
// let data = JSON.parse(e.data)
// // console.log(e.data);
// appendLine(data)
// scrollTo()
}
// 发送消息
ws.send(JSON.stringify(data));
后端
可用ws(https://github.com/websockets/ws?tab=readme-ov-file#server-broadcast)npm i ws
const { WebSocketServer} = WebSocket = require("ws");
wss.on("connection", function connection(ws) {
// 有空处理 ws.client 增加标识,广播时指定标识群
ws.on("error", console.error);
ws.on("message", function message(str) {
let data = JSON.parse(str)
// 广播
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(JSON.stringify(data));
}
});
});
});
或者 nodejs-websocket
// node server
var ws = require('nodejs-websocket');
var server = ws.createServer(function(conn){
conn.on('text', function(str) {
broadcast(str)
}
conn.on('error', function(){
// 异常断开连接,如浏览器关闭
})
})
function broadcast(str){
// 广播
server.connections.forEach(function (conn) {
conn.sendText(str)
})
}.listen(3002)
// server.listen(port, host)