Sign inGet Started

Envía tu primer evento en tiempo real

Realtime entrega eventos por WebSockets. Tu servidor publica en un canal y cada cliente conectado y suscrito a ese canal recibe el evento. Esta guía sigue un camino: crear una app, suscribir un cliente y publicar desde tu servidor.
El plan gratuito cubre 100 conexiones simultáneas y 200.000 mensajes por día, entre todas las apps de un espacio de trabajo. Los planes de pago empiezan en $25 por mes; consulta Precios de Realtime.

1. Crea una app

Una app es un entorno aislado con sus propias credenciales y canales. Eliges su región al crearla y no puedes cambiarla después.
  1. Abre Realtime > Apps en el dashboard.
  2. Selecciona Create app.
  3. Escribe un nombre en Name.
  4. Selecciona una Region: United States (us1) o Europe (eu1).
  5. Selecciona Create app.
Save your app credentials muestra entonces tres valores, una sola vez:
  • App ID es un rap_… id que identifica la app en las llamadas Bird API.
  • Key es pública. Los clientes se conectan con ella y es seguro incluirla en el código del cliente.
  • Secret se empareja con la key para autenticar llamadas del lado del servidor y firmar la autorización de canales. Trátala como una contraseña.
Copia los tres valores antes de seleccionar I've saved my secret, porque el secret no se muestra de nuevo. Luego crea una clave Bird API con el scope realtime en la página Developers > API keys y exporta lo que necesitan los siguientes pasos:
Ejemplo de código
export BIRD_API_KEY="bk_us1_..."
export BIRD_REALTIME_KEY="your-app-key"
export BIRD_REALTIME_SECRET="your-app-secret"

2. Suscribir desde un cliente

Elige entre tres clientes, uno por plataforma, todos con el mismo protocolo: @messagebird/realtime para el navegador, BirdRealtime para plataformas Apple, y com.messagebird:bird-realtime para Android y la JVM del servidor.
npm install @messagebird/realtime
El cliente identifica la app por su key y elige el edge a partir de la región, así que no necesitas configurar 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);
});
Los tres clientes abren el socket al construirse, así que puedes suscribirte sin una llamada de conexión aparte. Suscribirte antes de que el socket esté activo también funciona: los canales se registran localmente y se envían en cuanto la conexión se establece, y de nuevo tras cada reconexión.
orders es un canal público, así que cualquier cliente con la key de la app puede suscribirse. Los canales con nombre private-… o presence-… requieren que tu servidor autorice cada suscripción. Consulta Autorización de canales.
Los canales no se crean ni se configuran en ningún lugar. Un canal existe mientras al menos una conexión está suscrita a él, y desaparece cuando la última se va.

3. Publicar desde tu servidor

Publicar es una llamada del lado del servidor. Se autentica con tu key Bird API y lleva la key y el secret de la app para que el edge la acepte. Nunca publiques desde un cliente, porque eso implicaría exponer el 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" },
});
Después de que el edge entrega el evento, el cliente suscrito imprime order changed { id: 42, status: 'shipped' }. Si no llega nada, verifica que la key del cliente y las credenciales del servidor pertenezcan a la misma app y que los nombres de canal coincidan exactamente. Una publicación puede incluir hasta 100 canales. Para enviar hasta 10 eventos distintos en una sola solicitud, publica un lote.
La publicación se resuelve cuando el edge acepta el evento. La entrega a los clientes conectados es asíncrona, así que un 200 significa aceptado, no recibido.

4. Verlo en el dashboard

Realtime > Metrics muestra las conexiones simultáneas y los mensajes en su pico y promedio, por app o en todo el espacio de trabajo. Los gráficos reportan puntos de uso diario, así que usa la salida del cliente del paso 3 para confirmar el evento cuando llegue.

Próximos pasos

  • Autorización de canales cubre los canales privados y de presencia, y la firma que tu backend devuelve.
  • Publicar un evento contiene la solicitud y la respuesta completas, incluido el estado por canal en el momento de la publicación.
  • Webhooks y eventos explica cómo recibir eventos realtime.*, como un canal que pasa a estar ocupado o un miembro que se une, en tu propio endpoint.