import express from 'express'; import { createServer } from 'http'; import { Server } from 'socket.io'; import { handler } from './build/handler.js'; const app = express(); const server = createServer(app); const io = new Server(server, { cors: { origin: process.env.ORIGIN || 'http://localhost:3000', credentials: true } }); // Socket.IO auth + room management io.on('connection', (socket) => { console.log(`Socket connected: ${socket.id}`); socket.on('join-board', (boardId) => { socket.join(`board:${boardId}`); socket.to(`board:${boardId}`).emit('user-joined', { socketId: socket.id }); }); socket.on('leave-board', (boardId) => { socket.leave(`board:${boardId}`); socket.to(`board:${boardId}`).emit('user-left', { socketId: socket.id }); }); socket.on('disconnect', () => { console.log(`Socket disconnected: ${socket.id}`); }); }); // Store io globally so it can be accessed if needed globalThis.__socketIO = io; // SvelteKit handler app.use(handler); const port = process.env.PORT || 3000; const host = process.env.HOST || '0.0.0.0'; server.listen(port, host, () => { console.log(`Server running on http://${host}:${port}`); });