const express = require('express'); const http = require('http'); const socketIo = require('socket.io'); const cors = require('cors'); const app = express(); const server = http.createServer(app); const io = socketIo(server, { cors: { origin: "*", methods: ["GET", "POST"] } }); app.use(cors()); app.use(express.static('public')); const users = new Map(); io.on('connection', (socket) => { console.log('User connected:', socket.id); socket.on('join-room', (nickname) => { socket.nickname = nickname; users.set(socket.id, nickname); // Notify others about new user socket.broadcast.emit('user-joined', nickname); console.log(`${nickname} joined the room`); }); socket.on('offer', (data) => { console.log('Offer received from:', socket.nickname); socket.broadcast.emit('offer', data); }); socket.on('answer', (data) => { console.log('Answer received from:', socket.nickname); socket.broadcast.emit('answer', data); }); socket.on('ice-candidate', (data) => { console.log('ICE candidate received from:', socket.nickname); socket.broadcast.emit('ice-candidate', data); }); socket.on('disconnect', () => { const nickname = users.get(socket.id); if (nickname) { users.delete(socket.id); socket.broadcast.emit('user-left', nickname); console.log(`${nickname} left the room`); } }); }); const PORT = process.env.PORT || 3000; server.listen(PORT, () => { console.log(`Signaling server running on port ${PORT}`); });