Streamen Sie Live-Events an verbundene Browser und mobile Apps.
Senden Sie Live-Bestellupdates, Token-Streams von KI-Agenten, kollaborativen Raumstatus und In-App-Benachrichtigungen über verwaltete Pub/Sub-Kanäle, ohne eigene WebSocket-Infrastruktur zu betreiben. Kanäle entstehen bei Bedarf, sobald ein Client sie abonniert, und schließen sich, wenn die letzte Verbindung getrennt wird. Die Modi öffentlich, privat, Presence, verschlüsselt und Cache sind im Kanalnamen festgelegt.
channels.ts
4 abonniert4 abonniertconst bird = new BirdRealtime({ appKey: APP_KEY, region: "us1" }); // Public: anyone holding the app key can subscribe.const scores = bird.subscribe("match-42"); // Private: your backend signs every subscription.const order = bird.subscribe("private-order-ord_123"); // Presence: private, plus an identity the room can see.const room = bird.subscribe("presence-room-42"); // Cache: the latest event replays to whoever joins next.const build = bird.subscribe("cache-build-8821"); build.bind("bird:cache_miss", () => showSkeleton());
Verbindung 26896.319537
channels.ts
4 abonniert4 abonniertconst bird = new BirdRealtime({ appKey: APP_KEY, region: "us1" }); // Public: anyone holding the app key can subscribe.const scores = bird.subscribe("match-42"); // Private: your backend signs every subscription.const order = bird.subscribe("private-order-ord_123"); // Presence: private, plus an identity the room can see.const room = bird.subscribe("presence-room-42"); // Cache: the latest event replays to whoever joins next.const build = bird.subscribe("cache-build-8821"); build.bind("bird:cache_miss", () => showSkeleton());
Verbindung 26896.319537
channels.ts
4 abonniert4 abonniertconst bird = new BirdRealtime({ appKey: APP_KEY, region: "us1" }); // Public: anyone holding the app key can subscribe.const scores = bird.subscribe("match-42"); // Private: your backend signs every subscription.const order = bird.subscribe("private-order-ord_123"); // Presence: private, plus an identity the room can see.const room = bird.subscribe("presence-room-42"); // Cache: the latest event replays to whoever joins next.const build = bird.subscribe("cache-build-8821"); build.bind("bird:cache_miss", () => showSkeleton());
Verbindung 26896.319537
Steuern Sie Zugriff und Raumverhalten über das Kanalpräfix.
Erstellen Sie Räume bei Bedarf, ohne ein Kanalregister bereitzustellen.
Mit der Realtime API von Bird leitet Ihre Anwendung Live-Traffic weiter, indem sie einen Kanalnamen abonniert, der Groß- und Kleinschreibung unterscheidet und bis zu 164 Zeichen lang sein kann. Räume müssen nicht vorab in einer Datenbank angelegt werden. Das Namenspräfix legt die Sicherheits- und Statusgrenze fest: Ein Name ohne Präfix steht jedem Besucher offen, bei private- muss Ihr Backend den Abonnenten autorisieren, presence- ergänzt eine verifizierte Mitgliederliste und private-encrypted- verschlüsselt Event-Payloads Ende-zu-Ende. Da öffentliche Kanäle mit Ihrem öffentlichen App-Schlüssel abonniert werden können, verwenden Sie für Kunden- und Mandanten-IDs nur autorisierte Präfixe.
Wählen Sie den Kanalmodus passend zu Ihren Daten.
Nutzen Sie dieselbe WebSocket-Verbindung und denselben Backend-Publish-Aufruf für öffentliche Broadcasts, authentifizierte Kunden-Feeds und kollaborative Räume.
- 01
Public-Kanäle.
Senden Sie Live-Sportergebnisse, Ankunftszeiten im Nahverkehr, Bestandsticker oder Systemstatus an jeden Besucher, ohne einen Autorisierungsendpunkt aufzurufen. Da jeder mit Ihrem öffentlichen App-Schlüssel abonnieren kann, verwenden Sie allgemeine Themennamen wie scores-live statt Kunden-IDs in öffentlichen Kanalnamen.
- 02
Private-Kanäle.
Streamen Sie persönliche Bestellverfolgung, Token-Streams von KI-Agenten, Abrechnungswarnungen und Workspace-Benachrichtigungen über private--Kanäle. Wenn ein Browser oder eine mobile App abonniert, prüft Ihr Backend die Sitzung des Nutzers und signiert das Abonnement mit Ihrem App-Secret, damit nicht autorisierte Verbindungen nicht mithören können.
- 03
Presence-Kanäle.
Erstellen Sie Mitgliederlisten für gemeinsame Dokumente, Live-Zuschaueranzeigen und die Verfügbarkeit von Support-Warteschlangen mit presence--Kanälen. Ihr Server autorisiert jeden Abonnenten und hängt ein verifiziertes Mitgliederprofil an. So erhalten verbundene Clients die aktuelle Raumliste sowie Beitritte und Austritte in Echtzeit.
- 04
Encrypted-Kanäle.
Schützen Sie sensible Kontoupdates, Finanzbenachrichtigungen oder vertrauliche Workspace-Daten mit private-encrypted--Kanälen. Ihr Server verschlüsselt jede Payload mit einem 32-Byte-Hauptschlüssel, den nur Sie besitzen. Realtime liefert den Geheimtext über die Edge aus, während Kanal- und Event-Namen für das Routing sichtbar bleiben.
- 05
Cache-Kanäle.
Mit dem Präfix cache- erhalten später beitretende und neu verbindende mobile Clients den aktuellen Status direkt beim Abonnieren. Realtime spielt das zuletzt veröffentlichte Event mit einer TTL von bis zu 30 Minuten erneut ab. Ist der Cache leer, löst es einen cache-miss-Webhook aus, damit Ihr Server einen vollständigen Status-Snapshot bereitstellen kann.
Verteilen Sie Backend-Events mit einem Aufruf auf bis zu 100 Kanäle.
Veröffentlichen Sie Updates aus Ihrem Backend oder Hintergrund-Workern mit einer standardmäßigen HTTP-Anfrage. Bird übernimmt das WebSocket-Fan-Out an verbundene Browser und Geräte. Ein einzelner Aufruf sendet ein Event an bis zu 100 Kanäle (etwa einen Live-Spiel-Feed und dessen Cache-Zwilling) oder bündelt bis zu 10 verschiedene Events für unterschiedliche Räume. Sie können die Verbindung des auslösenden Tabs ausschließen, wenn Ihre UI bereits ein optimistisches Update angewendet hat, Live-Verbindungs- oder Mitgliederzahlen in der Publish-Antwort zurückgeben und einen Idempotenzschlüssel anhängen, damit erneute Versuche bei Netzwerkfehlern keine doppelten Events zustellen.
// One event, up to 100 channels, one request.
const result = await bird.realtime.publish(APP_ID, {
event: "score-updated",
channels: ["match-42", "cache-match-42"],
data: { home: 2, away: 1 },
// The tab that scored already rendered it locally.
exclude_connection_id: "26896.319537",
include: ["connection_count"],
});
for (const channel of result.data ?? []) {
console.log(channel.name, channel.connection_count);
}
Streamen Sie Tippanzeigen und Live-Cursor zwischen Teilnehmern.
Flüchtige UI-Signale wie Tippanzeigen, Live-Zeigerkoordinaten und aktive Auswahlmarkierungen müssen nicht den Umweg über Ihr Backend nehmen. Wenn Sie Client-Events für Ihre App aktivieren, können autorisierte Abonnenten in einem privaten oder Presence-Raum Events mit dem Präfix client- direkt an andere Teilnehmer senden, mit bis zu 10 Nachrichten pro Sekunde und Verbindung. Da ein authentifizierter Kanal erforderlich ist, können anonyme Besucher nicht mit Ihrem öffentlichen App-Schlüssel senden. Gleichzeitig bleiben hochfrequente Signale zwischen Teilnehmern von Ihren Anwendungsservern fern.
Kombinieren Sie Event-Fan-Out mit geringer Latenz und dauerhaften Anwendungsstatus.
Das Veröffentlichen eines Events ist erfolgreich, sobald die Realtime-Edge es zur asynchronen Verteilung an aktuell verbundene Abonnenten annimmt. Live-Kanäle übertragen Updates direkt und speichern keine Nachrichtenwarteschlange für Offline-Geräte. Speichern Sie dauerhafte Daten daher in Ihrer Datenbank und synchronisieren Sie verbundene Bildschirme über veröffentlichte Events oder Cache-Kanäle. In allen Tarifen gelten feste Grenzen: bis zu 100 Kanäle pro Veröffentlichung, 10 Events pro Batch, 10 KB pro Event-Payload und Kanalnamen mit 164 Zeichen.
Mehr dazu in der Dokumentation.
In der Realtime-Übersicht erfahren Sie, wie Kanäle, Mitglieder und Verbindungen zusammenwirken. Die Anleitungen zum Veröffentlichen von Events behandeln Fan-Out über mehrere Kanäle und den Ausschluss bei optimistischer UI, die zu Cache-Kanälen das Wiederherstellen des Status für spätere Teilnehmer und cache-miss-Fälle, und die zum Abfragen des Kanalstatus die Prüfung der Live-Raumbelegung aus Ihrem Backend.
Entwickeln Sie weiter
mit Realtime.
Kombinieren Sie Pub/Sub-Kanäle mit Live-Onlinelisten, serverseitig signierter Zugriffskontrolle und Lifecycle-Webhooks für Ihr Backend.
Presence
Zeigen Sie Live-Onlinelisten an, fassen Sie offene Tabs nach Nutzeridentität zusammen und senden Sie einzelnen Mitgliedern direkte Nachrichten.
→Sicherheit
Autorisieren Sie Abonnements privater Räume auf Ihrem Server, authentifizieren Sie Verbindungen und verschlüsseln Sie sensible Payloads Ende-zu-Ende.
→Webhooks
Lösen Sie Backend-Workflows aus, wenn ein Kanal belegt oder leer wird, sich seine Mitgliederzahl ändert oder sein Cache leer ist.
→Skalieren, ohne
die Kontrolle zu verlieren.
Organisieren Sie Teams in Workspaces, steuern Sie den API-Zugriff und verfolgen Sie Änderungen über Audit-Logs.
Organisation
Harbor
Zugriff bleibt in seinem Workspace.
Produktion/API-Schlüssel
Hafen-Backend
AktivAlex Lee
Admin
Heute · UTC
Audit-Protokoll
Organisation
Harbor
Zugriff bleibt in seinem Workspace.
Produktion/API-Schlüssel
Hafen-Backend
AktivAlex Lee
Admin
Heute · UTC
Audit-Protokoll
Organisation
Harbor
Zugriff bleibt in seinem Workspace.
Produktion/API-Schlüssel
Hafen-Backend
AktivAlex Lee
Admin
Heute · UTC
Audit-Protokoll