Sign inGet Started

Ontvangers van events uitsluiten

Als een client een wijziging optimistisch toepast voordat je server deze publiceert, kan het ontvangen van hetzelfde event de wijziging dubbel toepassen. Dit kan een flikkering of een dubbel item veroorzaken.
Geef het connectie-ID van de acterende client mee om het event aan elke andere geabonneerde connectie te leveren.
await bird.realtime.publish(appId, {
  event: "message.created",
  channels: ["presence-room-1"],
  data: { body: "hello" },
  exclude_connection_id: "26896.319537",
});

Het connectie-ID ophalen

De client leest zijn connectie-ID en stuurt het mee met het verzoek dat de wijziging triggert:
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,
  }),
});
Het ID is null totdat de connectie tot stand is gebracht en verandert na een herverbinding. Lees bird.connection.connectionId in de browser of bird.connectionId in Swift en Kotlin wanneer je het verzoek doet.
Geef de waarde door aan exclude_connection_id nadat je deze als niet-vertrouwde verzoekdata hebt gevalideerd. Dit veld kan de levering aan één connectie onderdrukken, maar kan geen toegang tot een event verlenen.

Gedrag van uitgesloten connecties

Alleen de genoemde connectie wordt uitgesloten. De andere tabbladen van dezelfde persoon gebruiken afzonderlijke connecties en ontvangen het event gewoon.
Het uitsluiten van een connectie-ID dat niet geabonneerd is of niet meer bestaat, is geen fout. De publicatie wordt normaal aan alle anderen geleverd.

Wanneer je uitsluiting weglaat

Gebruik uitsluiting voor optimistische interfaces. Als de client op het event wacht voordat hij een wijziging toepast, sluit hem dan niet uit. Anders blijft het acterende tabblad verouderd.

Volgende stappen