Aracılığıyla paylaş


Hızlı Başlangıç: Azure Web PubSub hizmeti SDK'sını kullanarak iletileri yayımlama

Azure Web PubSub, WebSocket istemcilerini yönetmenize yardımcı olur. Bu hızlı başlangıçta, Azure Web PubSub hizmeti SDK'sını kullanarak WebSocket istemcilerine nasıl ileti yayımlayabileceğiniz gösterilmektedir.

Önkoşullar

  • Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
  • Bash ve PowerShell komut kabuğu. Python, JavaScript ve Java örnekleri için Bash komut kabuğu gerekir.
  • VSCode gibi bir dosya düzenleyicisi.
  • Azure CLI: Azure CLI'yi yükleme

Projeyi yerel bir makinede oluşturuyorsanız, kullandığınız dilin bağımlılıklarını yüklemeniz gerekir:

.NET Core SDK'sını aspnetcore ve ve dotnet çalışma zamanını yükleyin.

.NET Core

1. Kurulum

CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın. Cloud Shell kullanıyorsanız oturum açmanız gerekmez.

az login

Yükseltme komutuyla CLI'nın en son sürümünü çalıştırdığınızdan emin olun.

az upgrade

Ardından, ile az upgradeyüklü değilse CLI için Azure Web PubSub uzantısını yükleyin veya güncelleştirin.

az extension add --name webpubsub --upgrade

1. Kaynak grubu oluşturma

Aşağıdaki ortam değişkenlerini ayarlayın. Yer tutucuyu <> benzersiz bir Web PubSub adıyla değiştirin.

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

Web PubSub projesi için bir kaynak grubu oluşturun.

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

2. Web PubSub hizmet örneğini dağıtma

az webpubsub create Web PubSub hizmet örneği oluşturmak ve dağıtmak için komutunu kullanın.

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

Hizmetin bağlantı dizesini kaydedin. Bağlantı dizesi, hizmet SDK'sı tarafından iletileri yayımlamak için kullanılır.

Önemli

Üretim ortamında, Azure Key Vault kullanarak bağlantı dizelerini güvenli bir şekilde depolamanız gerekir.

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

3. İstemciyi hizmet örneğine bağlama

Web PubSub istemcisi oluşturun. İstemci, sonlandırılana kadar hizmetle bağlantı kurar.

az webpubsub client Hizmete webSocket istemci bağlantısı başlatmak için komutunu kullanın. İstemciler her zaman bir hub'a bağlanır, bu nedenle istemcinin bağlanabilmesi için bir hub adı sağlayın.

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

Web PubSub hizmetine bağlantı, istemcinin artık başarıyla bağlandığını belirten bir JSON iletisi gördüğünüzde kurulur ve benzersiz connectionIdbir atanır:

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

4. Hizmet SDK'sı kullanarak iletileri yayımlama

Hub'a bağlı tüm istemcilere ileti yayımlamak için Azure Web PubSub SDK'sını kullanacaksınız. C#, JavaScript, Python ve Java arasında seçim yapabilirsiniz. Her dilin bağımlılıkları bu dilin adımlarında yüklenir. Python, JavaScript ve Java, bu hızlı başlangıçtaki komutları çalıştırmak için bir bash kabuğu gerektirir.

projeyi iletileri yayımlayacak şekilde ayarlama

  1. Bu proje için yeni bir komut kabuğu açın.

  2. bağlantı dizesini istemci kabuğundan kaydedin. Yer tutucuyu <your_connection_string> önceki bir adımda görüntülediğiniz bağlantı dizesiyle değiştirin.

    connection_string="<your_connection_string>"
    
  3. Şimdi projenizin dilini seçin.

  1. adlı yeni bir proje publisher ekleyin ve SDK paketi Azure.Messaging.WebPubSub.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Program.cs İstemcilere ileti göndermek için sınıfını WebPubSubServiceClient kullanmak için dosyasını güncelleştirin. Dosyasındaki Program.cs kodu aşağıdaki kodla değiştirin.

    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);
            }
        }
    }
    

    Çağrı, hub'daki service.SendToAllAsync() tüm bağlı istemcilere bir ileti gönderir.

  3. Hizmete bir ileti yayımlamak için aşağıdaki komutu çalıştırın.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. Web PubSub istemcisini içeren önceki komut kabuğu alınan iletiyi gösterir.

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

Temizleme

Bu hızlı başlangıçta oluşturduğunuz kaynakları, bunları içeren kaynak grubunu silerek silebilirsiniz.

az group delete --name $RESOURCE_GROUP --yes