Sign inGet started

Membaca status channel

Tiga operasi baca sisi server mencantumkan channel yang aktif, memeriksa satu channel, dan mencantumkan anggota presence channel. Autentikasi setiap permintaan dengan kunci Bird API Anda serta key dan secret aplikasi Realtime.
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,
  },
});

Channel mana yang aktif

const { data } = await bird.realtime.channels.list(appId, { prefix: "presence-" });

for (const channel of data) {
  console.log(channel.name);
}
Sebuah channel muncul dalam daftar selama setidaknya satu koneksi berlangganan. Channel tidak dibuat atau didaftarkan secara terpisah, sehingga channel kosong tidak muncul. Gunakan prefix untuk membatasi hasil ke kelompok tertentu seperti presence- atau orders-.
Respons tidak dipaginasi dan mengembalikan semua channel aktif dalam satu snapshot langsung. Lihat Daftar channel Realtime.

Memeriksa satu channel

const channel = await bird.realtime.channels.get(appId, "presence-lobby", {
  include: ["member_count"],
});

if (!channel.occupied) return; // nobody is listening; skip the work
Nama yang tidak dikenal atau tidak digunakan mengembalikan 200 OK dengan occupied: false. Gunakan hasil ini untuk melewati pekerjaan saat tidak ada koneksi yang dapat menerimanya. Lihat Mendapatkan channel Realtime.

Jumlah, melalui include

include dapat diulang dan menerima tepat dua nilai:
  • member_count adalah jumlah anggota unik, dan hanya berfungsi pada presence channel.
  • connection_count adalah jumlah koneksi yang berlangganan ke channel, dan memerlukan pengaturan penghitungan koneksi pada aplikasi.
Nilai lain mengembalikan 400 Bad Request. API juga mengembalikan 400 Bad Request untuk member_count pada channel non-presence, permintaan daftar tanpa prefiks presence, atau connection_count saat penghitungan koneksi dinonaktifkan.
Meminta atribut dihitung sebagai satu pesan tambahan terhadap penggunaan. Abaikan atribut jika occupied sudah menjawab pertanyaan Anda.
Satu anggota dapat memiliki beberapa koneksi. Sebuah ruangan dengan tiga orang yang masing-masing membuka dua tab melaporkan member_count sebesar 3 dan connection_count sebesar 6. Presence channel menjelaskan perbedaannya.

Siapa yang hadir

const { members } = await bird.realtime.channels.members(appId, "presence-lobby");

for (const member of members) {
  console.log(member.member_id);
}
Respons hanya berisi ID anggota. member_info dikirimkan ke klien yang berlangganan dan tidak tersedia melalui operasi REST ini. Gabungkan ID tersebut dengan catatan Anda sendiri untuk menampilkan nama atau avatar. Lihat Daftar anggota channel.

Membaca status saat Anda mempublikasikan

Saat mempublikasikan, gunakan include untuk mengembalikan jumlah yang sama pada setiap channel target saat waktu publikasi. Lihat Membaca status channel saat Anda mempublikasikan.

Perilaku titik waktu

Setiap respons adalah snapshot titik waktu dan dapat langsung kedaluwarsa. Gunakan untuk keputusan satu kali, bukan polling untuk status berkelanjutan.
Untuk status berkelanjutan, langganan endpoint ke grup webhook Realtime. realtime.channel_existence melaporkan channel yang aktif dan kosong, realtime.presence melaporkan perubahan anggota, dan realtime.connection_count melaporkan perubahan jumlah koneksi. Gunakan pembacaan status channel untuk menginisialisasi atau merekonsiliasi tampilan tersimpan Anda.

Langkah selanjutnya

Sumber daya terkait

Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.

Coba praktiknya dan dapatkan ringkasan implementasi