Ir al contenido

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.

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);
});

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.