Skip to main content

Realtime / WebSocket Surface

All hooks connect via Socket.IO to ${VITE_WEBSOCKET_SERVICE_URL}/realtime using JWT handshake auth with localStorage.auth_token.

HookPage(s)Join PayloadServer Event
useRealtimeDisplayStatusDisplays list, display detail{ display_id } (optional)mrd:display.status.updated
useRealtimeWebhooksDisplay detail, physical-space detail{ display_id } or nonemrd:webhook.received, mrd:physical-space.webhook.processed
useRealtimeIotVerificationIoT Adapters list{ iot_gateway_id } (optional)mrd:gateway.status.updated
useRealtimeAdaptersPhysical space detail (Devices){ physical_space_id }adapter status events

Degraded Mode

If the WebSocket service is unreachable, the app remains usable. Manual refresh / triggerHardRefresh() covers list re-fetch on mutations.