Sign inGet Started

Wykluczanie odbiorców zdarzeń

Jeśli klient zastosuje zmianę optymistycznie, zanim Twój serwer ją opublikuje, odebranie tego samego zdarzenia może zastosować zmianę dwukrotnie. Może to spowodować migotanie lub zduplikowany element.
Przekaż identyfikator połączenia działającego klienta, aby dostarczyć zdarzenie do każdego innego subskrybowanego połączenia.
await bird.realtime.publish(appId, {
  event: "message.created",
  channels: ["presence-room-1"],
  data: { body: "hello" },
  exclude_connection_id: "26896.319537",
});

Pobierz identyfikator połączenia

Klient odczytuje swój identyfikator połączenia i wysyła go wraz z żądaniem, które wyzwala zmianę:
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,
  }),
});
Identyfikator ma wartość null, dopóki połączenie nie zostanie nawiązane, i zmienia się po ponownym połączeniu. Odczytaj bird.connection.connectionId w przeglądarce lub bird.connectionId w Swift i Kotlin w momencie wysyłania żądania.
Przekaż wartość do exclude_connection_id po zwalidowaniu jej jako niezaufanych danych żądania. To pole może wstrzymać dostarczanie do jednego połączenia, ale nie może przyznać dostępu do zdarzenia.

Zachowanie wykluczonego połączenia

Tylko wskazane połączenie jest wykluczane. Inne karty tej samej osoby korzystają z oddzielnych połączeń i nadal otrzymują zdarzenie.
Wykluczenie identyfikatora połączenia, które nie jest subskrybowane lub już nie istnieje, nie jest błędem. Publikacja jest dostarczana normalnie do wszystkich pozostałych.

Kiedy pominąć wykluczanie

Używaj wykluczania w optymistycznych interfejsach. Jeśli klient czeka na zdarzenie przed zastosowaniem zmiany, nie wykluczaj go. W przeciwnym razie działająca karta pozostanie nieaktualna.

Następne kroki