Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Cloud Services
Code

Pengenalan Pusher: Penggunaan Presence Channel

by
Length:ShortLanguages:
This post is part of a series called Get Started With Pusher.
Get Started With Pusher: Client Events
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Indonesian (Bahasa Indonesia) translation by Muhammad Naufal (you can also view the original English article)

Dalam seri ini, kita telah mempelajari tentang Channel dari Pusher, sebuah platform yang memungkinkan Anda untuk memberi pengguna Anda pengalaman real-time yang mulus yang mereka inginkan.

Presence channel dibangun berdasarkan keamanan yang disediakan oleh private channel, tetapi Pusher menambahkan benefit dari mengetahui pengguna mana yang berlangganan dan terhubung ke channel itu. Bagian terbaiknya adalah betapa mudahnya menerapkan dan menggunakan presence channel, dan bahkan lebih mudah jika Anda sudah mengonfigurasi aplikasi Anda untuk menggunakan private channel. Anda akan belajar cara menggunakan presence channel dalam postingan ini.

Aplikasi Chat yang Lebih Baik

Aplikasi chat kami saat ini menggunakan private channel untuk memfasilitasi komunikasi klien/server secara instan. Jadi mengonfigurasi aplikasi kami untuk menggunakan presence channel akan menjadi sangat mudah. Mari kita mulai dengan aplikasi servernya.

Memodifikasi Server

Untuk menggunakan private channel, kami mengonfigurasi endpoint  untuk memastikan pengguna diautentikasi dengan aplikasi kami. Endpoint  ini mengeksekusi method authorizeUser() milik ChannelsController(), dan method tersebut memanggil Pusher library yaitu socket_auth() untuk membantu mengautentikasi pengguna. Untuk menggunakan presence channel, kita perlu mengubah authorizeUser() untuk memanggil method presence_auth() dari library Pusher, seperti ini:

Tetapi perubahan nama method tersebut hanya modifikasi pertama; kami juga harus memberikan presence_auth() dengan unique identifier user berseangkutan dan informasi tambahan yang ingin kami berikan tentang user tersebut. Code di atas menyimpan data pengguna tambahan ini dalam variabel $presenceData dan meneruskannya sebagai argumen terakhir untuk presence_auth().

Selain itu, kita harus memodifikasi metode sendMessage(). Perubahan pertama adalah nama channel-nya. Seperti halnya semua nama kami yang lain, kami harus mengawali nama channel ini untuk menunjukkan jenis channel yang ingin kami gunakan: presence- dalam hal ini, seperti yang ditunjukkan dalam code berikut.

Kami juga dapat mengubah data yang kami kirim dengan acara tersebut — daripada memberikan nama pengguna yang menginisiasi event tersebut, kami dapat memasukkan ID user-nya.

Karena kita akan menggunakan presence channel, kita dapat mencari username dari klien tersebut, dan perubahan kecil ini akan mengurangi ukuran data yang melewati jaringan.

Mengubah Klien

Objek channel milik klien berisi semua yang kami butuhkan untuk bekerja dengan subscribed channel, dan tidak terkecuali data pengguna. Objek channel kami memiliki properti yang disebut members yang dapat kami gunakan untuk mengambil informasi pengguna tertentu. Kami akan menggunakan objek ini di event handler send-message, seperti ini:

Di sini, kami memanggil this.channels.members.get() dan dengan ini kami mendapat ID user (ingat, aplikasi server kami sekarang menyediakan ID bukan nama). Method ini mengembalikan objek dengan property info, dan objek info ini berisi semua informasi tambahan yang kami berikan dalam variabel $presenceData dalam method authorizeUser() di server. Jadi dalam kode di atas, kami mengambil nama user dengan user.info.name.

Kami juga dapat memodifikasi method trigger() untuk memasukkan informasi tentang user bersangkutan yang memulai event alarm klien. Untuk mengambil data anggota pengguna yang saat ini sedang login, Anda menggunakan property me, seperti yang ditunjukkan dalam kode berikut:

Dalam kode ini, kami menambahkan property user ke event  payload dan mengaturnya ke user object pengguna pengguna yang sedang login. Ini berarti kita dapat memodifikasi event handler client-send-alarm untuk memasukkan nama pengguna dengan pesan alarm, seperti ini:

Di sini, kami menggunakan data.user.info.name untuk mengakses nama pengguna sehingga kami dapat melihat pengguna yang mengirim alarm, seperti yang ditunjukkan di sini:

screen showing which user sent the alarm

Kesimpulan

Menggunakan presence channel tidak hanya memberi aplikasi Anda peningkatan keamanan dari anonymous channel, tetapi juga memberi Anda kemampuan untuk meg-query data pengguna untuk pengguna yang subscribe ke channel tersebut. Dengan Channels dari Pusher, sangat mudah untuk menambahkan komunikasi yang aman, real-time, dan kaya fitur ke aplikasi Anda.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.