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("客户端建立连接了........"); //程序监听并打印出来前端给的数据 socket.on("UserLogin", function (arg) { console.log(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}加入群聊`); // console.log("onlineUser",onlineUser); }) //把输入框里面的东西传给后端,后端在发给除了“我”以外的每一个人 socket.on("sendMessage", (arg) => { if (!chatRecord.hasOwnProperty(arg.room)) { chatRecord[arg.room] = [] } chatRecord[arg.room].push(arg) socket.to(arg.room).emit("PushMessage", arg); }); 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("客户端断开连接了........"); }); });