Files
2024-09-27 02:06:13 +08:00

74 lines
1.6 KiB
JavaScript

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("客户端断开连接了........");
});
});