Files
MultiRoombaRover/webui/src/lib/socket.js
T
2026-04-29 18:31:02 -04:00

17 lines
877 B
JavaScript

// Socket Library Helper
// Purpose: Builds and exports the browser Socket.IO client with shared defaults. Scope: Centralizes connection URL/options so all modules use consistent socket behavior.
import { io } from 'socket.io-client';
import { loadSettings } from '../settings/persistence.js';
const configured = import.meta.env.VITE_ROVERD_URL?.trim();
const resolvedUrl = configured && configured.length > 0 ? configured : window.location.origin;
console.info('[socket] connecting to', resolvedUrl);
const settings = loadSettings();
const transportPref = settings?.page?.connectionTransport || 'websocket';
const transports = transportPref === 'polling' ? ['polling'] : ['websocket', 'polling'];
export const socket = io(resolvedUrl, {
transports,
timeout: 15000,
});
socket.on('connect_error', (err) => console.error('connect_error', err.code, err.message, err.data));