41 lines
920 B
JavaScript
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");
|
||
|
});
|