61 lines
1.5 KiB
JavaScript
61 lines
1.5 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("建立了连接");
|
|
|
|
//监听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("客户端断开连接了...");
|
|
});
|
|
}); |