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.
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 upgrade
yü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 connectionId
bir 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
Bu proje için yeni bir komut kabuğu açın.
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>"
Şimdi projenizin dilini seçin.
adlı yeni bir proje
publisher
ekleyin ve SDK paketiAzure.Messaging.WebPubSub
.mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSub
Program.cs
İstemcilere ileti göndermek için sınıfınıWebPubSubServiceClient
kullanmak için dosyasını güncelleştirin. DosyasındakiProgram.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.Hizmete bir ileti yayımlamak için aşağıdaki komutu çalıştırın.
dotnet run $connection_string "myHub1" "Hello World"
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin