Sign inGet started

Presence channel

Channel yang namanya diawali dengan presence- menggunakan otorisasi private channel dan menambahkan identitas anggota. Backend Anda menetapkan member_id untuk setiap subscriber. Subscriber menerima daftar anggota terkini dan event saat anggota bergabung atau keluar.
Gunakan presence channel untuk daftar online, penampil dokumen, indikator pengetikan, atau kursor kolaboratif.

Berlangganan

const room = bird.subscribe("presence-room-1");

room.bind("bird:subscription_succeeded", () => {
  console.log("me:", room.myId);
  console.log("here now:", [...room.members.values()]);
});

room.bind("bird:member_added", (member) => console.log("joined", member.member_id));
room.bind("bird:member_removed", (member) => console.log("left", member.member_id));
Di Swift dan Kotlin, subscribe mengembalikan tipe channel dasar. Lakukan cast ke PresenceChannel sebelum mengakses myId atau members. Swift menyediakan member map untuk bird:subscription_succeeded dan Member untuk event join dan leave. Kotlin menyediakan setiap event sebagai JsonElement. Di kedua klien, baca daftar anggota terkini dari room.members.
bird:subscription_succeeded aktif saat langganan selesai. Pada titik itu, room.members berisi daftar anggota terkini dan room.myId berisi member_id Anda. Render daftar awal ini sebelum menerapkan event join dan leave berikutnya.
Otorisasi mengikuti alur yang sama seperti private channel dengan satu tambahan: endpoint Anda mengembalikan member_data, string JSON yang membawa member_id dan member_info opsional, dan harus menandatangani string tersebut persis seperti itu. Lihat Mengotorisasi channel.

Gunakan member_info dengan aman

Setiap anggota channel menerima member_info. Gunakan untuk data profil publik kecil seperti nama tampilan atau URL avatar. Jangan sertakan alamat email, peran otorisasi, atau data sensitif lainnya.
Backend Anda menetapkan member_id dan member_info dalam respons otorisasi yang ditandatangani. Klien dapat meminta langganan tetapi tidak dapat memilih identitas yang ditandatangani.

Anggota dan koneksi

Satu anggota dapat memiliki beberapa koneksi. Misalnya, tiga tab terbuka menghasilkan satu anggota dan tiga koneksi:
Yang terjadiEvent anggotaJumlah koneksi channel
Tab pertama berlanggananbird:member_added1
Tab kedua berlangganantidak ada2
Tab kedua ditutuptidak ada1
Tab terakhir ditutupbird:member_removed0
room.members merepresentasikan identitas, bukan sesi. Untuk menerima jumlah koneksi terbuka, aktifkan Connection counting dan Connection count events, lalu bind bird:connection_count.

Membaca presence dari server Anda

Ada dua pembacaan sisi server, dan keduanya tidak memerlukan langganan:
  • Daftar anggota channel mengembalikan nilai member_id yang saat ini berlangganan di presence channel.
  • Dapatkan channel dengan include=member_count mengembalikan jumlah anggota yang hadir, tanpa mencantumkannya.
member_count hanya untuk presence. Memintanya pada public atau private channel menghasilkan error validasi, karena channel tersebut tidak memiliki anggota.
Anda juga dapat memintanya saat melakukan publish, yang mengembalikan status setiap channel target pada saat itu. Lihat Mempublikasikan event.

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