Konsep dasar Azure Web PubSub
Layanan Azure Web PubSub membantu Anda membangun aplikasi web olahpesan real time. Klien terhubung ke layanan menggunakan protokol WebSocket standar, dan layanan ini mengekspos REST API dan SDK bagi Anda untuk mengelola klien ini.
Syarat
Berikut adalah beberapa istilah penting yang digunakan oleh layanan:
Koneksi: Koneksi, juga dikenal sebagai koneksi klien atau klien, ini adalah hubungan logis antara klien dan layanan Web PubSub. Melalui 'koneksi', klien dan layanan terlibat dalam serangkaian interaksi bernegara. Koneksi yang menggunakan protokol yang berbeda mungkin bersifat berbeda, misalnya, beberapa koneksi terbatas pada durasi koneksi jaringan, sementara yang lain dapat memperluas beberapa koneksi jaringan berturut-turut antara klien dan layanan.
Hub: Hub adalah konsep logis untuk set koneksi klien. Biasanya Anda menggunakan satu hub untuk satu skenario, misalnya, hub obrolan , atau hub pemberitahuan . Ketika koneksi klien tersambung, koneksi terhubung ke hub, dan selama masa pakainya itu milik hub tersebut. Setelah koneksi klien tersambung ke hub, hub ada. Aplikasi yang berbeda dapat berbagi satu layanan Azure Web PubSub dengan menggunakan nama hub yang berbeda. Meskipun tidak ada batasan ketat pada jumlah hub, hub menggunakan lebih banyak beban layanan yang dibandingkan dengan grup. Disarankan untuk memiliki sekumpulan hub yang telah ditentukan daripada menghasilkannya secara dinamis.
Grup: Grup adalah subset koneksi ke hub. Anda dapat menambahkan koneksi klien ke grup atau menghapus koneksi klien dari grup kapan saja Anda inginkan. Misalnya, saat klien bergabung dengan ruang obrolan atau saat klien keluar dari ruang obrolan, ruang obrolan semacam itu bisa menjadi grup. Klien dapat bergabung dengan beberapa grup, dan grup dapat berisi beberapa klien. Grup ini seperti "sesi" grup, sesi grup dibuat setelah seseorang bergabung dengan grup, dan sesi hilang ketika tidak ada orang dalam grup. Pesan yang dikirim ke grup dikirimkan ke semua klien yang tersambung ke grup.
Pengguna: Satu pengguna bisa memiliki beberapa koneksi ke Web PubSub. Pengguna mungkin memiliki beberapa koneksi, misalnya saat satu pengguna terhubung di beberapa perangkat atau beberapa tab browser.
Pesan: Saat terhubung, klien dapat mengirim pesan ke aplikasi upstram atau menerima pesan dari aplikasi upstram melalui koneksi WebSocket. Pesan dapat dalam format teks biasa, biner, atau JSON dan memiliki ukuran maksimum 1 MB.
Acara Klien: Acara dibuat selama siklus hidup koneksi klien. Misalnya, koneksi klien WebSocket sederhana membuat acara
connect
ketika mencoba untuk terhubung ke layanan, acaraconnected
ketika berhasil terhubung ke layanan, acaramessage
ketika mengirim pesan ke layanan dan acaradisconnected
ketika terputus dari layanan. Detail tentang peristiwa klien diilustrasikan di bagian Protokol klien.Handler Acara: Handler acara berisi logika untuk menangani acara klien. Daftarkan dan konfigurasikan handler acara dalam layanan melalui portal atau Azure CLI sebelumnya. Detail dijelaskan di bagian Penanganan aktivitas.
Event Listener(pratinjau): Pendengar peristiwa hanya mendengarkan peristiwa klien tetapi tidak dapat mengganggu masa pakai klien Anda melalui respons mereka. Detail dijelaskan di bagian Pendengar peristiwa.
Server: Server dapat menangani peristiwa klien, mengelola koneksi klien, atau menerbitkan pesan ke grup. Penanganan aktivitas dan pendengar peristiwa dianggap sebagai sisi server. Detail tentang server dijelaskan di bagian Protokol server.
Penting
Hub
, Group
, UserId
adalah peran penting saat Anda mengelola klien dan mengirim pesan. Parameter tersebut akan diperlukan dalam panggilan REST API yang berbeda sebagai teks biasa. Jadi JANGAN letakkan informasi sensitif di bidang ini. Misalnya, kredensial atau token pembawa yang akan memiliki risiko kebocoran tinggi.
Alur kerja
Alur kerja yang khas menggunakan layanan ini ditunjukkan seperti di bawah ini:
Seperti yang diilustrasikan oleh grafik alur kerja di atas:
Klien tersambung ke hub dalam layanan menggunakan transportasi WebSocket. Layanan dapat meneruskan pesan ke upstream(server) yang dikonfigurasi, atau menangani pesan sendiri dan memungkinkan klien untuk melakukan pub/sub secara langsung, tergantung pada protokol yang digunakan klien. Detail dijelaskan dalam protokol klien.
Layanan ini memanggil server menggunakan protokol CloudEvents pada peristiwa klien yang berbeda. CloudEvents adalah definisi standar dan protokol-agnostik dari deskripsi struktur dan metadata acara yang dihosting oleh Cloud Native Computing Foundation (CNCF). Detailnya dijelaskan di bagian protokol server.
Server dapat memanggil layanan menggunakan REST API untuk mengirim pesan ke klien atau untuk mengelola klien yang terhubung. Detailnya dijelaskan di bagian protokol server