Sign inGet started

Private Channels

Ein Channel, dessen Name mit private- beginnt, erfordert neben dem öffentlichen App-Key eine Autorisierung durch Ihr Backend. Ihr Backend genehmigt den Aufrufer für diesen Channel und gibt eine Signatur zurück, die mit dem App-Secret berechnet wurde.
Verwenden Sie Private Channels für kontextbezogene Daten wie Bestellaktualisierungen eines Kunden, das Dashboard eines Mandanten oder Benachrichtigungen einer einzelnen Person.
const bird = new BirdRealtime({
  appKey: "your-app-key",
  region: "us1",
  authEndpoint: "/bird/auth",
});

const orders = bird.subscribe("private-orders-4821");
orders.bind("order-updated", (data) => {
  console.log(data);
});
Swift und Kotlin erfordern eine absolute Autorisierungs-URL, während ein Browser-Client einen Same-Origin-Pfad verwenden kann. Fügen Sie das Session-Token Ihres API über authHeaders hinzu. Der Client sendet diese Header bei jeder Autorisierungsanfrage mit, auch bei Anfragen nach einem Reconnect.
Der Client sendet die Connection-ID und den Channel-Namen per POST an authEndpoint. Die Subscription wird erst abgeschlossen, wenn der Endpoint den Aufrufer genehmigt und eine gültige Signatur zurückgibt. Channels autorisieren definiert die Anfrage, die Antwort und den zu signierenden String.

Channels pro Benutzer oder pro Mandant benennen

Setzen Sie den Ressourcen-Scope in den Channel-Namen und prüfen Sie ihn in Ihrem Endpoint. Ein Client kann jeden beliebigen Channel-Namen anfordern, daher muss Ihr Backend kundenübergreifende Subscriptions verhindern:
if (channel_name !== `private-orders-${user.accountId}`) {
  return res.sendStatus(403);
}
Dieser Vergleich ist die Autorisierungsentscheidung. Verlassen Sie sich niemals auf schwer erratbare Channel-Namen zur Zugriffskontrolle.

Was Private Channels unterstützen

  • Client-Events. Wenn in der App Client-Events aktiviert sind, kann ein abonnierter Client client--Events an die anderen Clients auf dem Channel senden, ohne einen Umweg über Ihren Server. Die Edge lehnt diese auf öffentlichen Channels ab.
  • Verbindungszählung. Wenn die Einstellungen für Verbindungszählung und Verbindungsanzahl-Events der App aktiviert sind, empfängt der Client bird:connection_count für den Channel.
  • Server-Publishing. Das Veröffentlichen von Ihrem Server funktioniert genauso wie bei einem öffentlichen Channel: Geben Sie den Channel im channels-Array an. Für Ihren Server gilt keine Autorisierung, da er bereits das App-Secret besitzt.
Private Channels haben keine Mitgliederidentität und keine Mitglieder-Events. Wenn Sie wissen müssen, wer anwesend ist, verwenden Sie einen Presence Channel.

Wenn eine Subscription abgelehnt wird

Eine abgelehnte Subscription wird als bird:subscription_error empfangen. Häufige Ursachen sind eine Nicht-2xx-Antwort von Ihrem Endpoint oder eine Signatur, die nicht zur Anfrage passt. Siehe Channels autorisieren zur Fehlerbehebung.

Nächste Schritte