Sign inGet Started

Escludere destinatari di un evento

Se un client applica una modifica in modo ottimistico prima che il server la pubblichi, ricevere lo stesso evento può applicare la modifica due volte. Questo può causare uno sfarfallio o un elemento duplicato.
Passa l'ID di connessione del client che ha eseguito l'azione per consegnare l'evento a ogni altra connessione sottoscritta.
await bird.realtime.publish(appId, {
  event: "message.created",
  channels: ["presence-room-1"],
  data: { body: "hello" },
  exclude_connection_id: "26896.319537",
});

Ottenere l'ID di connessione

Il client legge il proprio ID di connessione e lo invia con la richiesta che attiva la modifica:
const bird = new BirdRealtime({ appKey: "your-app-key", region: "us1" });

await fetch("/messages", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    body: "hello",
    connection_id: bird.connection.connectionId,
  }),
});
L'ID è null finché la connessione non è stabilita e cambia dopo una riconnessione. Leggi bird.connection.connectionId nel browser o bird.connectionId in Swift e Kotlin quando effettui la richiesta.
Passa il valore a exclude_connection_id dopo averlo validato come dato di richiesta non attendibile. Questo campo può sopprimere la consegna a una connessione, ma non può concedere accesso a un evento.

Comportamento della connessione esclusa

Solo la connessione indicata viene esclusa. Le altre schede della stessa persona usano connessioni separate e ricevono comunque l'evento.
Escludere un ID di connessione che non è sottoscritto, o che non esiste più, non è un errore. La pubblicazione viene consegnata normalmente a tutti gli altri.

Quando omettere l'esclusione

Usa l'esclusione per le interfacce ottimistiche. Se il client attende l'evento prima di applicare una modifica, non escluderlo. Altrimenti la scheda che ha eseguito l'azione resta obsoleta.

Passi successivi