@rooms-haxball/connector
v0.1.1
Published
Conecta una sala de HaxBall al dashboard multi-tenant de Rooms HaxBall sin tener que gestionar Socket.IO manualmente.
Downloads
273
Readme
@rooms-haxball/connector
Conecta una sala de HaxBall al dashboard multi-tenant de Rooms HaxBall sin tener que gestionar Socket.IO manualmente.
Installation
npm install @rooms-haxball/connector socket.io-clientsocket.io-client se declara como peer dependency para evitar versiones duplicadas en tu bot.
Environment Variables
Variables opcionales de fallback para migraciones y despliegues existentes:
DASHBOARD_HUB_URL: URL base del dashboard (ej.https://dashboard.example.com).DASHBOARD_API_KEY: API key de tu sala (rhb_...) generada desde/keys.INTERNAL_API_KEY: fallback temporal legacy si aún no definisteDASHBOARD_API_KEY.
5-line Usage Example
const { connectToDashboard } = require('@rooms-haxball/connector');
const room = createRoom();
const apiKey = 'rhb_1234567890abcdef1234567890abcdef';
const dashboardUrl = 'https://dashboard.example.com';
connectToDashboard(room, { apiKey, roomId: 'my-room', roomName: 'My Room', dashboardUrl });Configuration
connectToDashboard(room, { apiKey, roomId, roomName, dashboardUrl }):
apiKey: API key de la sala. Primario por opciones.dashboardUrl: URL base del dashboard. Primario por opciones.Fallback opcional para migración: si omites
apiKeyodashboardUrl, el conector usaDASHBOARD_API_KEY/INTERNAL_API_KEYyDASHBOARD_HUB_URL.roomId: identificador estable de la sala (ej.rambo,rs-4v4).roomName: nombre visible en el dashboard.El conector envía
connectorVersionen el handshake para telemetría y compatibilidad operativa.
Troubleshooting
- No conecta al dashboard: verifica
DASHBOARD_HUB_URLyDASHBOARD_API_KEY. - Error 401/403: la API key puede estar revocada o asociada a otra sala.
- Dashboard reiniciado: la reconexión es automática (
reconnection: true). - Advertencia por
INTERNAL_API_KEY: migra aDASHBOARD_API_KEY; el fallback es temporal.
Liga Integration (Socket.IO)
Si quieres enviar eventos de partido a un backend de liga separado (goles, asistencias, telemetría), usa connectToLiga.
const { connectToLiga } = require('@rooms-haxball/connector');
connectToLiga(room, {
backendUrl: 'http://localhost:4300',
apiKey: process.env.BOT_LIGA_SOCKET_API_KEY,
roomId: 'liga-principal',
telemetryIntervalMs: 1000,
homeTeamId: 1,
awayTeamId: 2,
seasonName: 'Temporada 1',
});Variables de entorno de fallback para liga:
BOT_LIGA_SOCKET_API_KEY: clave de autenticacion Socket.IO del backend liga.BOT_LIGA_BACKEND_URL: URL del backend liga (si no se pasabackendUrl).BOT_LIGA_API_BASE: fallback adicional para URL base de liga.
