24 lines
712 B
JavaScript
24 lines
712 B
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Minimal WebSocket relay for lobby + signaling.
|
|
* Broadcasts every message to all connected clients (clients filter by topic).
|
|
*/
|
|
import { createServer } from 'http';
|
|
import { WebSocketServer } from 'ws';
|
|
|
|
const PORT = Number(process.env.PORT) || 9090;
|
|
const server = createServer();
|
|
const wss = new WebSocketServer({ server });
|
|
|
|
wss.on('connection', (ws) => {
|
|
ws.on('message', (raw) => {
|
|
const msg = raw.toString();
|
|
wss.clients.forEach((client) => {
|
|
if (client !== ws && client.readyState === 1) client.send(msg);
|
|
});
|
|
});
|
|
});
|
|
|
|
server.listen(PORT, '0.0.0.0', () => {
|
|
console.log('Bombo relay server running at ws://0.0.0.0:' + PORT + ' (all interfaces)');
|
|
});
|