Files
2026-04-29 18:31:02 -04:00

22 lines
688 B
JavaScript

// Global WebSocket Server
// Purpose: Stores the shared raw WebSocket server instance for modules that need direct access. Scope: Centralizes setter/getter access for process-wide WS wiring.
const { WebSocketServer } = require('ws');
const { httpServer } = require('./http');
const logger = require('./logger');
const roverWSS = new WebSocketServer({ noServer: true });
httpServer.on('upgrade', (req, socket, head) => {
if (req.url.startsWith('/rover')) {
roverWSS.handleUpgrade(req, socket, head, (ws) => {
roverWSS.emit('connection', ws, req);
});
}
});
roverWSS.on('connection', () => {
logger.info('Rover websocket connected');
});
module.exports = roverWSS;