finished conenct modal

This commit is contained in:
PxlLoewe
2025-03-15 20:40:40 -07:00
parent 2ecc91adb9
commit cf61740698
8 changed files with 147 additions and 95 deletions

View File

@@ -5,6 +5,7 @@ import { Server } from "socket.io";
import { createAdapter } from "@socket.io/redis-adapter";
import { jwtMiddleware } from "modules/socketJWTmiddleware";
import { pubClient, subClient } from "modules/redis";
import { handle } from "socket-events/connect-dispatch";
const app = express();
const server = createServer(app);
@@ -17,7 +18,7 @@ const io = new Server(server, {
io.use(jwtMiddleware);
io.on("connection", (socket) => {
socket.on("connect-dispatch", () => {});
socket.on("connect-dispatch", handle(socket, io));
});
server.listen(process.env.PORT, () => {
console.log(`Server running on port ${process.env.PORT}`);

View File

@@ -13,12 +13,12 @@
"@types/express": "^5.0.0",
"@types/node": "^22.13.5",
"@types/nodemailer": "^6.4.17",
"@types/socket.io-redis": "^3.0.0",
"concurrently": "^9.1.2",
"typescript": "latest"
},
"dependencies": {
"@react-email/components": "^0.0.33",
"@redis/json": "^1.0.7",
"@socket.io/redis-adapter": "^8.3.0",
"axios": "^1.7.9",
"cron": "^4.1.0",
@@ -28,7 +28,6 @@
"nodemailer": "^6.10.0",
"react": "^19.0.0",
"redis": "^4.7.0",
"socket.io": "^4.8.1",
"socket.io-redis": "^6.1.1"
"socket.io": "^4.8.1"
}
}

View File

@@ -1,14 +1,34 @@
import { pubClient } from "modules/redis";
import { Server, Socket } from "socket.io";
export const handle = (socket: Socket, io: Server) => async (jwt: string) => {
const userId = socket.data.user.id; // User ID aus dem JWT-Token
await pubClient.set(`dispatchers:${socket.id}`, userId);
export const handle =
(socket: Socket, io: Server) =>
async ({
logoffTime,
selectedZone,
}: {
logoffTime: string;
selectedZone: string;
}) => {
const userId = socket.data.user.id; // User ID aus dem JWT-Token
await pubClient.json.set(`dispatchers:${socket.id}`, "$", {
logoffTime,
selectedZone,
userId,
});
socket.join("dispatchers"); // Dem Dispatcher-Raum beitreten
socket.join("dispatchers"); // Dem Dispatcher-Raum beitreten
socket.on("disconnect", async () => {
console.log("Disconnected from dispatch server");
await pubClient.del(`dispatchers:${socket.id}`);
});
};
const keys = await pubClient.keys("dispatchers:*");
const dispatchers = await Promise.all(
keys.map(async (key) => {
return await pubClient.json.get(key);
}),
);
console.log(dispatchers);
socket.on("disconnect", async () => {
console.log("Disconnected from dispatch server");
await pubClient.json.del(`dispatchers:${socket.id}`);
});
};