Sign inGet Started

Kirim event realtime pertama Anda

Realtime mengirimkan event melalui WebSocket. Server Anda mempublikasikan ke sebuah channel, dan setiap klien yang terhubung serta berlangganan channel tersebut menerima event itu. Panduan ini mengikuti satu alur: buat aplikasi, hubungkan klien, dan publikasikan dari server Anda.
Paket gratis mencakup 100 koneksi bersamaan dan 200.000 pesan per hari, di seluruh app dalam satu workspace. Paket berbayar mulai dari $25 per bulan; lihat Harga Realtime.

1. Buat aplikasi

Aplikasi adalah lingkungan terisolasi dengan kredensial dan channel-nya sendiri. Anda memilih region saat membuatnya, dan region tersebut tidak dapat diubah setelahnya.
  1. Buka Realtime > Apps di dashboard.
  2. Pilih Create app.
  3. Masukkan nama di Name.
  4. Pilih Region: United States (us1) atau Europe (eu1).
  5. Pilih Create app.
Save your app credentials kemudian menampilkan tiga nilai, satu kali saja:
  • App ID adalah rap_… id yang mengidentifikasi aplikasi dalam panggilan Bird API.
  • Key bersifat publik. Klien terhubung menggunakannya, dan aman untuk disertakan dalam kode klien.
  • Secret dipasangkan dengan key untuk mengautentikasi panggilan sisi server dan menandatangani otorisasi channel. Perlakukan seperti kata sandi.
Salin ketiganya sebelum memilih I've saved my secret, karena secret tidak akan ditampilkan lagi. Kemudian buat Bird API key dengan scope realtime di halaman Developers > API keys, dan ekspor yang dibutuhkan langkah berikutnya:
Contoh kode
export BIRD_API_KEY="bk_us1_..."
export BIRD_REALTIME_KEY="your-app-key"
export BIRD_REALTIME_SECRET="your-app-secret"

2. Berlangganan dari klien

Pilih dari tiga klien, satu per platform, semuanya menggunakan protokol yang sama: @messagebird/realtime untuk browser, BirdRealtime untuk platform Apple, dan com.messagebird:bird-realtime untuk Android dan server JVM.
npm install @messagebird/realtime
Klien mengidentifikasi app berdasarkan key-nya dan memilih edge dari region, sehingga Anda tidak perlu mengonfigurasi 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);
});
Ketiga klien membuka socket saat diinisialisasi, sehingga Anda dapat berlangganan tanpa panggilan koneksi terpisah. Berlangganan sebelum socket aktif juga tidak masalah: channel didaftarkan secara lokal dan dikirim segera setelah koneksi terbentuk, serta dikirim ulang setiap kali terjadi reconnect.
orders adalah channel publik, sehingga klien mana pun yang memiliki app key dapat berlangganan. Channel bernama private-… atau presence-… mengharuskan server Anda mengotorisasi setiap langganan. Lihat Mengotorisasi channel.
Channel tidak dibuat atau dikonfigurasi di mana pun. Sebuah channel ada selama setidaknya satu koneksi berlangganan padanya, dan menghilang ketika koneksi terakhir meninggalkannya.

3. Publikasikan dari server Anda

Publikasi adalah panggilan sisi server. Panggilan ini melakukan autentikasi dengan Bird API key Anda dan membawa key serta secret app agar edge menerimanya. Jangan pernah mempublikasikan dari klien, karena itu berarti mengirimkan 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" },
});
Setelah edge mengirimkan event, klien yang berlangganan mencetak order changed { id: 42, status: 'shipped' }. Jika tidak ada yang diterima, pastikan client key dan kredensial server berasal dari app yang sama dan nama channel cocok persis. Satu publish dapat mencantumkan hingga 100 channel. Untuk mengirim hingga 10 event berbeda dalam satu permintaan, publikasikan batch.
Publikasi selesai begitu edge menerima event. Pengiriman ke klien yang terhubung bersifat asinkron, sehingga 200 berarti diterima oleh edge, bukan sudah sampai ke klien.

4. Lihat di dashboard

Realtime > Metrics menampilkan koneksi bersamaan dan pesan puncak serta rata-rata, per app atau di seluruh workspace. Grafik melaporkan titik penggunaan harian, jadi gunakan output klien dari langkah 3 untuk mengonfirmasi event saat tiba.

Langkah selanjutnya

  • Mengotorisasi channel membahas channel private dan presence, serta tanda tangan yang dikembalikan backend Anda.
  • Publikasikan event berisi permintaan dan respons lengkap, termasuk status per channel saat publikasi.
  • Webhooks & events menjelaskan cara menerima event realtime.*, seperti channel menjadi terisi atau anggota bergabung, di endpoint Anda sendiri.