Skip to main content

Contrato de canales

Los nombres de canal se construyen mediante helpers en pusher.client.ts — la única fuente de verdad compartida entre el publisher y el autorizador.
Los canales privados (prefijo private-) requieren un token de autorización firmado antes de que un cliente pueda suscribirse. El canal de tótem es público a propósito para que las UIs táctiles y los dashboards de NOC se suscriban sin un handshake.

Contrato de eventos

Los eventos del dominio de contratos se enumeran en ContractPusherEvent:

Autorizador de canales privados

POST /api/v3/realtime/pusher/auth
1

Autoriza

Requiere el permiso pusher:auth.
2

Valida el cuerpo

socket_id y channel_name son ambos obligatorios (400 de lo contrario).
3

Impone el namespace

El canal debe coincidir con ^private-(contract|account)-[0-9a-f-]{36}$; cualquier otra cosa se rechaza con 403.
4

Firma

Devuelve el payload de auth de Pusher desde authorizeChannel(socket_id, channel_name). Cuando Pusher no está configurado el endpoint devuelve 403.
La regex del namespace es la frontera de seguridad: un llamante que tiene pusher:auth solo puede suscribirse a canales de contract/account. El alcance de propiedad (qué contrato puede observar un usuario) lo impone la capa de sesión de la propia app llamante antes de que llegue a este endpoint.

Solicitud de ejemplo

Respuesta de ejemplo