const { WebSocketServer } = require('ws'); const { createServer } = require('http'); const server = createServer(); const wss = new WebSocketServer({ server }); wss.on('connection', (ws) => { console.log('Client connected'); // Send welcome message ws.send(JSON.stringify({ type: 'welcome', message: 'Connected to WebSocket server!', timestamp: new Date().toISOString() })); // Handle incoming messages ws.on('message', (data) => { try { const message = JSON.parse(data.toString()); console.log('Received:', message); // Broadcast to all connected clients wss.clients.forEach((client) => { if (client.readyState === 1) { // WebSocket.OPEN client.send(JSON.stringify({ type: 'broadcast', message: message.message, sender: message.sender || 'Anonymous', timestamp: new Date().toISOString() })); } }); } catch (error) { console.error('Error parsing message:', error); } }); ws.on('close', () => { console.log('Client disconnected'); }); ws.on('error', (error) => { console.error('WebSocket error:', error); }); }); const PORT = process.env.WS_PORT || 8080; server.listen(PORT, () => { console.log(`WebSocket server started on port ${PORT}`); }); module.exports = { wss };