Conexión al Servidor WebSocket
La comunicación entre el sensor y el servidor se realiza a través de Socket.io Client (versión 4.x) sobre el namespace /oee.
1. Parámetros de Conexión
- Namespace / Ruta de Conexión:
/oee - Ejemplo URL de Conexión:
https://api.improvemeter.com/oee - Transportes del Protocolo:
["websocket", "polling"] - Autenticación: Transmitir el token obtenido en la fase previa mediante el objeto
auth.
2. Código de Inicialización
import { io } from 'socket.io-client';
function connectSensorSocket(serverUrl, socketAuthToken) {
const socket = io(`${serverUrl}/oee`, {
auth: {
token: socketAuthToken
},
transports: ['websocket', 'polling'],
autoConnect: true,
reconnection: true,
reconnectionAttempts: 10,
reconnectionDelay: 3000
});
// Conexión exitosa a nivel transporte
socket.on('connect', () => {
console.log('✅ Conectado al servidor WebSocket:', socket.id);
});
// Confirmación de autenticación desde el servidor
socket.on('connection-established', (data) => {
console.log('🎉 Autenticación confirmada por el servidor:', data.message);
});
// Error de autenticación (Token inválido o expirado)
socket.on('auth-error', (data) => {
console.error('❌ Error de Autenticación:', data.message);
});
socket.on('disconnect', (reason) => {
console.warn('⚠️ Desconectado del servidor. Razón:', reason);
});
return socket;
}
3. Estado de la Conexión
| Evento Recibido | Descripción |
|---|---|
connect | Conexión WebSocket establecida con éxito. |
connection-established | El servidor ha validado el token JWT de acceso. |
auth-error | El token fue rechazado por el servidor. |
disconnect | Pérdida de conexión con el servidor. |