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 disebut klien atau koneksi klien, mewakili setiap koneksi WebSocket yang terhubung ke layanan Web PubSub. Jika berhasil terhubung, ID koneksi unik ditetapkan ke koneksi ini oleh layanan Web PubSub.

  • 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.

  • Koneksi Klien dan ConnectionId: klien tersambung ke titik akhir /client, ketika tersambung, connectionId yang unik dihasilkan oleh layanan sebagai identitas yang unik dari koneksi klien. Pengguna kemudian dapat mengelola koneksi klien menggunakan connectionId ini. Detail dijelaskan di bagian Protokol klien .

  • Acara Klien: Acara dibuat selama siklus hidup koneksi klien. Misalnya, koneksi klien WebSocket sederhana membuat acara connect ketika mencoba untuk terhubung ke layanan, acara connected ketika berhasil terhubung ke layanan, acara message ketika mengirim pesan ke layanan dan acara disconnected 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:

Diagram showing the Web PubSub service workflow.

Seperti yang diilustrasikan oleh grafik alur kerja di atas:

  1. Klient tersambung ke layanan titik akhir /client menggunakan transpor WebSocket. Layanan meneruskan setiap bingkai WebSocket ke (server) induk yang dikonfigurasi. Koneksi WebSocket dapat terhubung dengan subprotokola kustom apa pun untuk ditangani server, atau dapat terhubung dengan subprotokola yang didukung layanan (misalnya json.webpubsub.azure.v1) yang memungkinkan klien untuk melakukan pub/sub secara langsung. Detail dijelaskan dalam protokol klien.

  2. 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.

  3. Server dapat memanggil layanan menggunakan REST API untuk mengirim pesan ke klien atau untuk mengelola klien yang terhubung. Detailnya dijelaskan di bagian protokol server