Bagikan melalui


Mulai cepat: Menerbitkan pesan menggunakan SDK layanan Azure Web PubSub

Azure Web PubSub membantu Anda mengelola klien WebSocket. Mulai cepat ini menunjukkan kepada Anda cara menerbitkan pesan ke klien WebSocket menggunakan SDK layanan Azure Web PubSub.

Prasyarat

  • Langganan Azure, jika Anda tidak memilikinya, buat akun gratis.
  • shell perintah Bash dan PowerShell. Sampel Python, JavaScript, dan Java memerlukan shell perintah Bash.
  • Editor file seperti VSCode.
  • Azure CLI: menginstal Azure CLI

Jika membuat proyek di komputer lokal, Anda harus menginstal dependensi untuk bahasa yang Anda gunakan:

Instal .NET Core SDK dan aspnetcore runtime dan dotnet.

.NET Core

1. Penyiapan

Untuk masuk ke Azure dari CLI, jalankan perintah berikut dan ikuti perintah untuk menyelesaikan proses autentikasi. Jika Anda menggunakan Cloud Shell, anda tidak perlu masuk.

az login

Pastikan Anda menjalankan CLI versi terbaru melalui perintah peningkatan.

az upgrade

Selanjutnya, instal atau perbarui ekstensi Azure Web PubSub untuk CLI jika tidak diinstal dengan az upgrade.

az extension add --name webpubsub --upgrade

1. Membuat grup sumber daya

Atur variabel lingkungan berikut. <Ganti tempat penampung> dengan nama Web PubSub yang unik.

RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"

Buat grup sumber daya untuk proyek Web PubSub.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

2. Menyebarkan instans layanan Web PubSub

az webpubsub create Gunakan perintah untuk membuat dan menyebarkan instans layanan Web PubSub.

az webpubsub create \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --sku Free_F1

Simpan string koneksi layanan. String koneksi digunakan oleh SDK layanan untuk menerbitkan pesan.

Penting

Di lingkungan produksi, Anda harus menyimpan string koneksi dengan aman menggunakan Azure Key Vault.

az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString

3. Menyambungkan klien ke instans layanan

Membuat klien Web PubSub. Klien mempertahankan koneksi ke layanan hingga dihentikan.

az webpubsub client Gunakan perintah untuk memulai koneksi klien WebSocket ke layanan. Klien selalu terhubung ke hub, jadi berikan nama hub untuk disambungkan oleh klien.

az webpubsub client start \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --hub-name "myHub1" \
  --user-id "user1"

Koneksi ke layanan Web PubSub dibuat ketika Anda melihat pesan JSON yang menunjukkan bahwa klien sekarang berhasil terhubung, dan diberi yang unik connectionId:

{"type":"system","event":"connected","userId":"user1","connectionId":"<your_unique_connection_id>"}

4. Menerbitkan pesan menggunakan SDK layanan

Anda akan menggunakan Azure Web PubSub SDK untuk menerbitkan pesan ke semua klien yang terhubung ke hub. Anda dapat memilih antara C#, JavaScript, Python, dan Java. Dependensi untuk setiap bahasa diinstal dalam langkah-langkah untuk bahasa tersebut. Python, JavaScript, dan Java memerlukan shell bash untuk menjalankan perintah dalam mulai cepat ini.

Menyiapkan proyek untuk memublikasikan pesan

  1. Buka shell perintah baru untuk proyek ini.

  2. Simpan string koneksi dari shell klien. <your_connection_string> Ganti tempat penampung dengan string koneksi yang Anda tampilkan di langkah sebelumnya.

    connection_string="<your_connection_string>"
    
  3. Sekarang, pilih bahasa untuk proyek Anda.

  1. Tambahkan proyek baru bernama publisher dan paket Azure.Messaging.WebPubSubSDK .

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Program.cs Perbarui file untuk menggunakan WebPubSubServiceClient kelas untuk mengirim pesan ke klien. Ganti kode dalam Program.cs file dengan kode berikut.

    using System;
    using System.Threading.Tasks;
    using Azure.Messaging.WebPubSub;
    
    namespace publisher
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                if (args.Length != 3) {
                    Console.WriteLine("Usage: publisher <connectionString> <hub> <message>");
                    return;
                }
                var connectionString = args[0];
                var hub = args[1];
                var message = args[2];
    
                var service = new WebPubSubServiceClient(connectionString, hub);
    
                // Send messages to all the connected clients
                // You can also try SendToConnectionAsync to send messages to the specific connection
                await service.SendToAllAsync(message);
            }
        }
    }
    

    Panggilan service.SendToAllAsync() hanya mengirim pesan ke semua klien yang tersambung di hub.

  3. Jalankan perintah berikut untuk menerbitkan pesan ke layanan.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. Shell perintah sebelumnya yang berisi klien Web PubSub menunjukkan pesan yang diterima.

    {"type":"message","from":"server","dataType":"text","data":"Hello World"}
    

Pembersihan

Anda dapat menghapus sumber daya yang Anda buat dalam mulai cepat ini dengan menghapus grup sumber daya yang berisi sumber daya tersebut.

az group delete --name $RESOURCE_GROUP --yes