> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.rhombus.community/llms.txt
> Use this file to discover all available pages before exploring further.

# Descripción general de WebSocket

> Transmite eventos de seguridad en tiempo real desde Rhombus con WebSocket y STOMP: recibe alertas, actualizaciones de dispositivos y actividad al instante.

<Note>
  Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, [contáctenos](mailto:support@rhombus.com).
</Note>

La plataforma Rhombus expone un endpoint WebSocket para comunicación bidireccional en tiempo real entre tu aplicación y la consola de Rhombus. Esto te permite recibir notificaciones instantáneas sobre eventos de seguridad, alertas de políticas, cambios en dispositivos y otra actividad organizacional sin hacer polling a la API REST.

## Cómo funciona

Las conexiones WebSocket de Rhombus utilizan el protocolo de mensajería **STOMP 1.2** (Streaming Text Oriented Messaging Protocol) sobre una conexión WebSocket estándar. STOMP proporciona un protocolo simple basado en frames para suscribirse a tópicos y recibir mensajes estructurados.

```text theme={null}
Your Application
      │
      ▼
  WebSocket (WSS)
      │
      ▼
  STOMP 1.2 Protocol
      │
      ▼
  Rhombus Event Bus ──► /topic/change/{orgUuid}
```

## Endpoint de conexión

| Entorno    | Endpoint                                     |
| ---------- | -------------------------------------------- |
| Producción | `wss://ws.rhombussystems.com:8443/websocket` |

## Conceptos clave

### Tópicos

Una vez conectado, te suscribes a un **tópico** para recibir mensajes. El tópico principal para eventos organizacionales es:

```text theme={null}
/topic/change/{orgUuid}
```

Este tópico emite eventos para todos los cambios dentro de tu organización, incluyendo alertas de políticas, actualizaciones de dispositivos y cambios de configuración.

### Tipos de eventos

Cada mensaje en el tópico de cambios contiene una carga útil JSON con:

| Campo        | Descripción                                                                  |
| ------------ | ---------------------------------------------------------------------------- |
| `entity`     | El tipo de entidad que cambió (por ejemplo, `POLICY_ALERT`, `CAMERA_STATE`)  |
| `entityUuid` | Identificador único de la entidad                                            |
| `type`       | El tipo de cambio: `REFRESH` (predeterminado), `CREATE`, `UPDATE` o `DELETE` |
| `update`     | Los datos de la entidad modificada (presente en algunos eventos)             |
| `deviceUuid` | UUID del dispositivo asociado (cuando aplica)                                |

### Autenticación

Las conexiones WebSocket se autentican usando **únicamente tokens de API**. La autenticación basada en certificados (mTLS) no es compatible con WebSocket. El token se pasa como un header HTTP durante el handshake de WebSocket.

<Note>
  Si actualmente te autenticas a la API REST de Rhombus mediante certificados, necesitarás un token de API separado para las conexiones WebSocket.
</Note>

## Cuándo usar WebSocket vs. la API REST

| Caso de uso                            | Enfoque recomendado       |
| -------------------------------------- | ------------------------- |
| Reaccionar a alertas en tiempo real    | WebSocket                 |
| Construir un dashboard en vivo         | WebSocket                 |
| Disparar automatizaciones ante eventos | WebSocket                 |
| Consultar datos históricos             | API REST                  |
| Administrar dispositivos o usuarios    | API REST                  |
| Recuperar clips de video               | API REST (streaming DASH) |

## Qué sigue

<CardGroup cols={2}>
  <Card title="Autenticación" icon="key" href="/es/websocket/authentication">
    Configura la autenticación con token de API para conexiones WebSocket.
  </Card>

  <Card title="Ciclo de vida de la conexión" icon="arrows-rotate" href="/es/websocket/connection-lifecycle">
    Establece, mantén y cierra conexiones de forma adecuada.
  </Card>

  <Card title="Monitoreo de eventos" icon="bell" href="/es/websocket/event-monitoring">
    Suscríbete a tópicos y procesa eventos en tiempo real.
  </Card>

  <Card title="Ejemplos de código" icon="code" href="/es/websocket/code-examples">
    Ejemplos completos y funcionales en Python, JavaScript y Go.
  </Card>
</CardGroup>
