first commit

This commit is contained in:
编码猿
2024-09-27 02:06:13 +08:00
commit 852d94fbb9
36760 changed files with 3274413 additions and 0 deletions

View File

@@ -0,0 +1 @@
02563c8e-a4b6-4112-bdfb-88f42ed95a2e

View File

@@ -0,0 +1,15 @@
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "node-dev socket.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"socket.io": "^4.1.3"
}
}

View File

@@ -0,0 +1,88 @@
const { createServer } = require("http");
const { Server } = require("socket.io");
const httpServer = createServer();
const io = new Server(httpServer);
// 保存群列表
var GroupList = {};
// 保存聊天记录
var HistoryList = {};
io.on("connection", (socket) => {
console.log("a user connected", socket.id);
socket.on("UserLogin", (res) => {
// 如果已经有房间了
if (GroupList.hasOwnProperty(res.room)) {
console.log("1 如果已经有房间了");
// 判断房间是否已经有这个用户名了
var isHave = GroupList[res.room].filter((v) => {
return v.name == res.name;
});
// 没有这个用户
if (isHave.length == 0) {
console.log("2 没有这个用户");
// 将用户加入房间数组
GroupList[res.room].push({
name: res.name,
img: res.img,
});
socket.emit("LoginSuccess", res);
} else {
console.log("3 有这个用户");
socket.emit("UserAlready", "用户名已存在,请改名!");
}
} else {
console.log("4 没有房间");
GroupList[res.room] = [];
// 将用户加入房间数组
GroupList[res.room].push({
name: res.name,
img: res.img,
});
socket.emit("LoginSuccess", res);
}
});
socket.on("JoinRoom", (res) => {
// 将当前 socket 加入群聊
socket.join(res.room);
// 向房间内的所有人发送欢迎信息
io.in(res.room).emit("WelcomeUser", `${res.name} 加入群聊`);
io.in(res.room).emit("RoomOnline", GroupList[res.room]);
});
socket.on("SendMessage", (res) => {
console.log("后端收到的消息为:", res);
socket.to(res.room).emit("SetMessage", res);
});
socket.on("Shake", (res) => {
console.log("Shake");
socket.to(res.room).emit("StartShake", true);
});
socket.on("UserDisconnect", (res) => {
console.log("有个客户端掉线了");
if (GroupList.hasOwnProperty(res.room)) {
console.log("===============");
GroupList[res.room] = GroupList[res.room].filter((v) => {
return v.name != res.name;
});
io.in(res.room).emit("WelcomeUser", `${res.name} 离开群聊`);
// 更新在线人数
io.in(res.room).emit("RoomOnline", GroupList[res.room]);
}
});
});
httpServer.listen(3000);