Eventos en Tiempo Real (Socket.IO)
Matias Impulso transmite cambios de estado instantáneos (mensajes entrantes, estados de lectura ACK, generación de códigos QR, cambios en el Embudo Kanban y transiciones de Agentes de IA) sobre Socket.IO v4 respaldado por Redis.
Autenticación Obligatoria en el Handshake
Sección titulada «Autenticación Obligatoria en el Handshake»El adaptador AuthenticatedIoAdapter exige un Access Token JWT válido durante el apretón de manos inicial (handshake) en todos los namespaces. Cualquier conexión sin token válido o cuyo usuario haya sido desactivado es rechazada antes de unirse a salas.
import { io } from 'socket.io-client';
const socket = io('https://api.matiasimpulso.com', { path: '/socket.io/', transports: ['websocket', 'polling'], auth: { token: '<YOUR_JWT_ACCESS_TOKEN>', }, reconnection: true, reconnectionDelay: 1000, reconnectionDelayMax: 10000,});
socket.on('connect', () => { console.info('Conectado en tiempo real:', socket.id);});
socket.on('connect_error', (err) => { console.error('Error de autenticación o red en Socket.IO:', err.message);});Familias Principales de Eventos
Sección titulada «Familias Principales de Eventos»Una vez autenticado, el servidor vincula el socket exclusivamente al ámbito de la empresa (companyId) del usuario autenticado:
| Categoría | Ejemplos de Eventos | Uso Habitual |
|---|---|---|
| Tickets y Kanban | Creación, actualización de estado (pending/open/closed), transferencia de asesor y movimiento de etapa Kanban. |
Sincronizar la bandeja multi-asesor y las columnas del embudo sin recargar. |
Mensajes y Estados (ACK) |
Nuevo mensaje entrante/saliente, transcripción completada, edición y cambio de check (sent → delivered → read). |
Actualizar la ventana de chat activa al instante. |
| Canales y Sesiones QR | Emisión de nuevo código QR, progreso de vinculación, estado CONNECTED / DISCONNECTED. |
Renderizar el modal de emparejamiento WhatsApp QR en vivo. |
| Estado del Agente IA | Indicador de pensamiento/respuesta de IA, alerta de escalamiento a humano (AWAITING_HUMAN). |
Notificar a los supervisores cuando una conversación requiere intervención inmediata. |