> ## Índice de la documentación
> Consulta el índice completo de la documentación en: https://developer.rhombus.com/llms.txt
> Úsalo para descubrir todas las páginas disponibles antes de seguir explorando.

# Referencia de eventos del WebSocket

> Cada mensaje del destino de cambios del WebSocket de eventos de Rhombus: el sobre, los cambios de alertas de políticas, los cambios de otras entidades, los encabezados STOMP, los tipos de cambio y las garantías de entrega, generados a partir de la especificación AsyncAPI.

> **Note**: Esta página se tradujo automáticamente. Si encuentras errores o tienes sugerencias, [escríbenos](mailto:support@rhombus.com).

Esta página enumera los mensajes que recibe un suscriptor de `/topic/change/{orgUuid}`. Se genera a partir de la [especificación AsyncAPI](https://developer.rhombus.com/rhombus_asyncapi.json) del WebSocket de eventos; los campos de las alertas de políticas y sus enums vienen de los mismos esquemas que la [referencia de la API](https://developer.rhombus.com/api-reference/event-webservice/get-recent-policy-alerts-for-organization). Las descripciones de los mensajes están en inglés. Para conectarte y suscribirte, consulta la [descripción general del WebSocket](https://developer.rhombus.com/es/websocket/overview) y la [autenticación del WebSocket](https://developer.rhombus.com/es/websocket/authentication).

## Entrega

- **Como máximo una vez.** Los mensajes no se confirman, no se guardan y no se reenvían. Lo que se publica mientras estás desconectado se pierde, y un mensaje que el servicio no puede procesar dentro de los 30 segundos posteriores a su publicación se descarta. Después de reconectarte, lee lo que te perdiste con la API REST; [Crear una canalización de eventos](https://developer.rhombus.com/es/solutions/event-pipeline) muestra cómo.
- **Filtrado por rol.** Una conexión recibe solo lo que puede ver el rol de su credencial. Una alerta de política se entrega cuando el rol tiene acceso al dispositivo o a la ubicación de la alerta; una alerta sin ninguno de los dos solo llega a roles de acceso completo. Un rol limitado a algunas ubicaciones o dispositivos recibe solo los tipos de entidad que el servidor puede verificar contra ellos. Consulta [Qué recibe una conexión](https://developer.rhombus.com/es/websocket/authentication#qué-recibe-una-conexión).
- **Sin garantía de orden.** Ordena los eventos por sus marcas de tiempo, no por su orden de llegada.
- **Tramas.** El cuerpo es JSON, aunque el encabezado `content-type` de la trama indica `text/plain;charset=UTF-8`. El orden de las claves varía, y los campos nulos se omiten. Los UUID son cadenas, incluidos los de los arreglos `targetUsers` y `targetRoles` que llevan algunos mensajes.
- **No se envían todos los cambios.** Muchos tipos de entidad envían un `REFRESH` breve sin `update`; lee la entidad con la API REST cuando necesites su estado. Los puntos de búsqueda y los cuadros delimitadores del video en vivo no se envían a este destino.
- **Pueden aparecer valores nuevos sin aviso**: nuevos tipos de entidad, tipos de cambio, campos y valores de enum. Ignora lo que no reconozcas.

## Tipos de cambio

| `type`    | Significado                                              | `update`                                         |
| --------- | -------------------------------------------------------- | ------------------------------------------------ |
| `CREATE`  | Algo nuevo, como una alerta de política                  | Normalmente el objeto completo                   |
| `UPDATE`  | Un objeto existente cambió                               | El nuevo estado, los campos que cambiaron o nada |
| `REFRESH` | El objeto cambió; vuelve a leerlo si necesitas su estado | Normalmente ninguno                              |
| `DELETE`  | El objeto se eliminó                                     | Ninguno                                          |

## Mensajes que recibes

### `PolicyAlertChangeEvent`

A new policy alert, or a change to one.

A \`CREATE\` carries the whole alert in \`update\`; it is sent once, when the alert is first stored, so fields that Rhombus fills in later (such as \`finalized\` and clip locations) can still be at their initial values. Read the alert from the REST API when you need its final state. \`UPDATE\` and \`DELETE\` carry only \`entityUuid\`. \`DELETE\` messages are limited to one per organization every 10 minutes, so don't rely on them to track every removed alert. A policy alert is delivered only to a role that can access the alert's device or location; an alert with neither goes only to full-access roles.

```json
{
  "entity": "POLICY_ALERT",
  "type": "CREATE",
  "update": {
    "alertMonitoringVerified": false,
    "clipLocationMap": {},
    "clipLocationMapV2": {},
    "deviceType": "CAMERA",
    "deviceUuid": "ItkwWv1qT7Wy8-pY8KDesw",
    "durationSec": 12,
    "egressBoundaryDevices": [],
    "finalized": false,
    "ingressBoundaryDevices": [],
    "locationUuid": "Rk2pQ7yLT0qX4b1nVt8sJw",
    "notificationSent": false,
    "numHumans": 1,
    "orgUuid": "wEeifGSySTiD228kK7M-Xg",
    "policyAlertTriggers": [
      "MOTION_HUMAN"
    ],
    "policyUuid": "pL0c7YvHQkWm3rN2aB9xCg",
    "ruleUuid": "rU1e9KdLR3uJ5sP0qW2tYg",
    "saved": false,
    "serverReceivedAtMs": 1791367200850,
    "shared": false,
    "textDescription": "Human detected at Front Lobby",
    "timestampMs": 1791367200000,
    "type": "POLICY_ALERT_V2",
    "uuid": "Xq3vT1bKQ2m8c9Zr0aLwYg"
  }
}
```

### `ChangeEvent`

Any other change: device state, sensors, access control, policies, clips and more.

The generic envelope for every entity except \`POLICY_ALERT\`. The shape of \`update\` depends on \`entity\`; many messages carry none, so treat them as a signal to read the entity from the REST API.

```json
{
  "entity": "CAMERA_STATE",
  "entityUuid": "ItkwWv1qT7Wy8-pY8KDesw",
  "type": "UPDATE",
  "update": {
    "connectionStatus": "GREEN",
    "firmwareVersion": "v1.0.1234",
    "healthStatus": "GREEN",
    "locationUuid": "Rk2pQ7yLT0qX4b1nVt8sJw",
    "mediaRegion": "us-west-2",
    "name": "Front Lobby",
    "stateUpdatedTimestampMs": 1791367200000,
    "uuid": "ItkwWv1qT7Wy8-pY8KDesw"
  }
}
```
