Sign inGet Started

Invia il tuo primo evento realtime

Realtime consegna eventi tramite WebSocket. Il tuo server pubblica su un canale e ogni client connesso iscritto a quel canale riceve l'evento. Questa guida segue un percorso: creare un'app, iscrivere un client e pubblicare dal server.
Il piano gratuito copre 100 connessioni simultanee e 200.000 messaggi al giorno, su tutte le app di uno spazio di lavoro. I piani a pagamento partono da 25 $ al mese; vedi Prezzi di Realtime.

1. Creare un'app

Un'app è un ambiente isolato con credenziali e canali propri. Scegli la regione al momento della creazione e non puoi cambiarla in seguito.
  1. Apri Realtime > Apps nella dashboard.
  2. Seleziona Create app.
  3. Inserisci un nome in Name.
  4. Seleziona una Region: United States (us1) o Europe (eu1).
  5. Seleziona Create app.
Save your app credentials mostra quindi tre valori, una sola volta:
  • App ID è un rap_… id che identifica l'app nelle chiamate Bird API.
  • Key è pubblica. I client si connettono con essa ed è sicuro includerla nel codice client.
  • Secret si abbina alla key per autenticare le chiamate lato server e firmare l'autorizzazione del canale. Trattalo come una password.
Copia tutti e tre i valori prima di selezionare I've saved my secret, perché il secret non viene più mostrato. Poi crea una chiave Bird API con lo scope realtime nella pagina Developers > API keys, ed esporta ciò che serve ai passaggi successivi:
Esempio di codice
export BIRD_API_KEY="bk_us1_..."
export BIRD_REALTIME_KEY="your-app-key"
export BIRD_REALTIME_SECRET="your-app-secret"

2. Iscriversi da un client

Scegli tra tre client, uno per piattaforma, tutti con lo stesso protocollo: @messagebird/realtime per il browser, BirdRealtime per le piattaforme Apple e com.messagebird:bird-realtime per Android e la JVM lato server.
npm install @messagebird/realtime
Il client identifica l'app tramite la sua key e sceglie l'edge dalla region, quindi non devi configurare un host:
import { BirdRealtime } from "@messagebird/realtime";

const bird = new BirdRealtime({
  appKey: "your-app-key",
  region: "us1",
});

const orders = bird.subscribe("orders");
orders.bind("order-updated", (data) => {
  console.log("order changed", data);
});
Tutti e tre i client aprono il socket durante la costruzione, quindi puoi iscriverti senza una chiamata di connessione separata. Iscriversi prima che il socket sia attivo va bene: i canali vengono registrati localmente e inviati non appena la connessione è stabilita, e di nuovo dopo ogni riconnessione.
orders è un canale pubblico, quindi qualsiasi client con la key dell'app può iscriversi. I canali denominati private-… o presence-… richiedono che il tuo server autorizzi ogni iscrizione. Vedi Autorizzazione dei canali.
I canali non vengono creati né configurati da nessuna parte. Un canale esiste finché almeno una connessione è iscritta, e scompare quando l'ultima si disconnette.

3. Pubblicare dal server

La pubblicazione è una chiamata lato server. Si autentica con la tua Bird API key e include la key e il secret dell'app affinché l'edge la accetti. Non pubblicare mai da un client, perché significherebbe esporre il secret.
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY,
  realtime: {
    key: process.env.BIRD_REALTIME_KEY,
    secret: process.env.BIRD_REALTIME_SECRET,
  },
});

await bird.realtime.publish("rap_01krdgeqcxet5s7t44vh8rt9mg", {
  event: "order-updated",
  channels: ["orders"],
  data: { id: 42, status: "shipped" },
});
Dopo che l'edge consegna l'evento, il client iscritto stampa order changed { id: 42, status: 'shipped' }. Se non arriva nulla, verifica che la key del client e le credenziali del server appartengano alla stessa app e che i nomi dei canali corrispondano esattamente. Una singola pubblicazione può indicare fino a 100 canali. Per inviare fino a 10 eventi diversi in una sola richiesta, pubblica un batch.
La pubblicazione si risolve quando l'edge accetta l'evento. La consegna ai client connessi è asincrona, quindi un 200 significa accettato, non ricevuto.

4. Verificare nella dashboard

Realtime > Metrics mostra il picco e la media delle connessioni simultanee e dei messaggi, per app o sull'intero spazio di lavoro. I grafici riportano punti di utilizzo giornaliero, quindi usa l'output del client dal passaggio 3 per confermare l'evento al suo arrivo.

Passaggi successivi

  • Autorizzazione dei canali tratta i canali privati e di presenza, e la firma che il tuo backend restituisce.
  • Pubblicare un evento contiene la richiesta e la risposta complete, incluso lo stato per canale al momento della pubblicazione.
  • Webhook ed eventi spiega come ricevere eventi realtime.*, ad esempio un canale che diventa occupato o un membro che si unisce, sul tuo endpoint.