Realtime wordt geüpgraded

Gehoste pub/sub via WebSocket. Abonneren, publiceren, schalen.

Live chat, aanwezigheid, in-app-meldingen, realtime dashboards — zonder zelf de WebSocket-infrastructuur te beheren. Gebouwd op dezelfde technologie die Pusher Channels tien jaar lang aandreef. Dezelfde authenticatie, dezelfde idempotentie, hetzelfde webhook-contract als elk ander Bird-kanaal.

realtime.ts
200 · 0.2s
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

// On your server: publish an event to a channel.
const { data, error } = await bird.realtime.publish({
  channel: "orders:BRD-49217",
  event:   "order.shipped",
  data:    { status: "shipped", eta: "Thursday, May 22" },
}).safe();

// In your client: subscribe and receive it live.
const channel = bird.realtime.subscribe("orders:BRD-49217");
channel.on("order.shipped", (event) => render(event.data));

if (error) throw error;
console.log(data.id);
// → "evt_2nQ81oP3..."

5 minuten van npm install tot eerste event

Publiceer uw eerste event in de taal die u al gebruikt.

SDK's in elke grote runtime. De eerste publish landt op een goedgekeurd testkanaal (bird-test:realtime), zodat u een CI-check kunt uitvoeren voordat u een productiekanaal inricht.

1
2
3
4
5
6
7
8
9
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.realtime.publish({
  channel: "bird-test:realtime",
  event:   "ping",
  data:    { hello: "world" },
}).safe();

Tien stappen tussen "uw server publiceert" en "uw client ontvangt het event."

Gehoste pub/sub-primitieven, benoemd en auditeerbaar. Geen WebSocket-infrastructuur om zelf te beheren.

  1. 01

    Abonneer op benoemde kanalen

    Clients openen een verbinding, abonneren op een of meer kanalen en ontvangen events zodra ze worden gepubliceerd.

  2. 02

    Publiceer vanuit elke omgeving

    Vanuit uw backend, uw CLI, uw CI of een MCP-aware agent — dezelfde bird.realtime.publish-aanroep.

  3. 03

    Aanwezigheidskanalen

    Weet wie er in een kanaal zit, wie er bijkwam, wie er vertrok. Webhook-events bij elke wijziging.

  4. 04

    Privékanalen met authenticatie

    Auth-handshake aan de clientzijde; uw backend ondertekent het abonnementsverzoek.

  5. 05

    Versleutelde kanalen

    End-to-end-versleuteling voor kanalen die gevoelige payloads bevatten.

  6. 06

    Herstel van verbindingsstatus

    Clients maken opnieuw verbinding en herspelen events die gemist zijn tijdens de onderbreking, tot een configureerbaar tijdvenster.

  7. 07

    Rate limits op kanaalniveau

    Configureerbare publish-limieten per kanaal. Het dashboard toont de limiet en het huidige tempo.

  8. 08

    Cross-regio routering

    Verbindingen worden automatisch naar het dichtstbijzijnde edge-knooppunt gerouteerd. Latenties blijven laag in elke regio.

  9. 09

    Webhooks bij kanaalstatus

    realtime.channel.occupied, realtime.channel.vacated, realtime.member.added, realtime.member.removed. Dezelfde HMAC-envelope als elk ander Bird-kanaal.

  10. 10

    Dezelfde auth, dezelfde error-envelope

    Eén API-key voor Realtime, SMS, Email, WhatsApp, Voice. Eén error-typeregister voor allemaal.

Waarom wij Realtime bouwen

Live UX is het eerste dat breekt bij schaalvergroting. Wij beheren het al tien jaar.

Bird Realtime is de WebSocket-infrastructuur die Pusher Channels aandreef — de dienst waartegen velen van u al jaren ontwikkelen. We integreren het in de nieuwe Bird API, zodat het authenticatie, observability en facturering deelt met alles wat u op Bird doet. Als u vandaag al Pusher gebruikt, blijft uw dienst op dezelfde infrastructuur draaien; de nieuwe SDK is de zichtbare verandering voor ontwikkelaars.

realtime.ts
200 · 0.2s
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

// On your server: publish an event to a channel.
const { data, error } = await bird.realtime.publish({
  channel: "orders:BRD-49217",
  event:   "order.shipped",
  data:    { status: "shipped", eta: "Thursday, May 22" },
}).safe();

// In your client: subscribe and receive it live.
const channel = bird.realtime.subscribe("orders:BRD-49217");
channel.on("order.shipped", (event) => render(event.data));

if (error) throw error;
console.log(data.id);
// → "evt_2nQ81oP3..."

Elke statuswijziging is een webhook.

HMAC-ondertekende payloads, replay-beschermd, idempotent. Dezelfde envelope op elk Bird-kanaal — leer er één, en u kent ze allemaal.

POST /webhooks/bird
signed
{
  "type": "realtime.member.added",
  "id":   "evt_3pX1g7t...",
  "created_at": "2026-05-19T15:42:01.221Z",
  "data": {
    "channel":   "presence:room-42",
    "member_id": "usr_4hQ2m",
    "members":   18,
    "region":    "us-east"
  }
}

Retry-schema: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-letter na de laatste poging; elk dead-lettered event is opnieuw afspeelbaar vanuit het dashboard of de API.

  • realtime.channel.occupiedEerste abonnee heeft zich aangesloten bij een eerder leeg kanaal.
  • realtime.channel.vacatedDe laatste abonnee is vertrokken; het kanaal is nu leeg.
  • realtime.member.addedEen lid is toegetreden tot een aanwezigheidskanaal.
  • realtime.member.removedEen lid heeft een aanwezigheidskanaal verlaten.
  • realtime.message.publishedEen event is gepubliceerd naar een kanaal.

Als u e-mail hebt geïntegreerd, hebt u Realtime geïntegreerd.

Dezelfde auth, hetzelfde idempotency-contract, dezelfde error-envelope, dezelfde webhook-structuur. Het verschil is het transport — een langlevende WebSocket-verbinding in plaats van een eenmalige REST-verzending.

Realtime.

realtime
const channel = bird.realtime.subscribe("orders:BRD-49217");

channel.on("order.shipped", (event) => {
  render(event.data);
});

Open een verbinding, abonneer u op een kanaal en ontvang events zodra ze plaatsvinden. Dezelfde auth als uw transactionele verzendingen.

SMS.

sms
await bird.sms.send({
  from:     "Bird",
  to:       "+15005550006",
  text:     `Your order has shipped.`,
  category: "transactional",
});

Dezelfde envelope, dezelfde idempotency. Voor wanneer het event op een telefoon moet landen, niet in een verbonden client.

Prijzen worden binnenkort aangekondigd.

De prijzen voor Realtime worden afgerond. Als u een bestaande Pusher Channels-klant bent, blijft uw dienst op het huidige abonnement. Voor een offerte voor de nieuwe Bird Realtime SDK kunt u contact met ons opnemen.

Schrijf u in op de wachtlijst

Begin met één kanaal.
Voeg de rest toe wanneer je er klaar voor bent.

Een test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra je een betaalmethode toevoegt en een afzender verifieert.

Gebruik je Claude Code, Cursor of Codex? Kopieer een setup-prompt en je agent installeert de Bird CLI en skills voor je. Kies de jouwe:

Cursor