const { Server } = require("socket.io"); const io = new Server(3000, {}); var onlineUser = { // '10086': [ // { // name: '', // room: '', // img: '', // type: '', // 1群主 2管理 3 群成员 // } // ] } //聊天消息 var chatRecord = { } io.on("connection", (socket) => { console.log("建立了连接"); //监听UserLogin socket.on("UserLogin", function (arg) { // 如果群已经存在 if (onlineUser.hasOwnProperty(arg.room)) { arg.type = 3 } else { arg.type = 1 onlineUser[arg.room] = [] //创建一个空的数组 } onlineUser[arg.room].push(arg); socket.join(arg.room); io.in(arg.room).emit("SystemMessage", `欢迎${arg.name}加入群聊`); //发送前端给当前群里所有人可见所有人 }) //监听sendMessage socket.on("sendMessage", (arg) => { if (!chatRecord.hasOwnProperty(arg.room)) { chatRecord[arg.room] = [] //创建一个空数组 } chatRecord[arg.room].push(arg) //向群里面追加arg socket.to(arg.room).emit("PushMessage", arg); //并且把消息发个前端除自己以外的所有人 }); //监听传来的getOnlineUser 并将本房间所有的在线人数传到前端 socket.on("getOnlineUser", (arg) => { io.in(arg.room).emit("PushOnlineUser", onlineUser[arg.room]); }); socket.on("SetShake", (arg) => { socket.to(arg.room).emit("PushShake"); }); socket.on("disconnect", () => { console.log("客户端断开连接了..."); }); });