socketio-zustand/server/index.js

41 lines
920 B
JavaScript

import express from "express";
import http from "http";
const app = express();
const server = http.createServer(app);
import { Server } from "socket.io";
const io = new Server(server, {
cors: {
origin: "*",
},
});
const userSockets = new Map();
io.on("connection", (socket) => {
console.log(socket.id);
socket.on("message", (message, callback) => {
console.log(message);
io.emit("message", message);
callback({
status: "ok",
});
});
socket.on("disconnect", () => {
// Remove the user ID mapping when the socket disconnects
userSockets.forEach((socketId, userId) => {
if (socketId === socket.id) {
userSockets.delete(userId);
}
});
});
socket.on("clear", () => io.emit("clear"));
});
server.listen(3001, () => {
console.log("Server listening on port 3001");
});