Share via


快速入門:使用 Azure Web PubSub 服務 SDK 發佈訊息

Azure Web PubSub 可協助您管理 WebSocket 用戶端。 本快速入門說明如何使用 Azure Web PubSub 服務 SDK 將訊息發佈至 WebSocket 用戶端。

必要條件

  • Azure 訂用帳戶,如果您還沒有訂用帳戶,請建立一個免費帳戶
  • Bash 和 PowerShell 命令殼層。 Python、JavaScript 和 Java 範例需要 Bash 命令殼層。
  • 檔案編輯器,例如 VSCode。
  • Azure CLI:安裝 Azure CLI

如果在本機電腦上建立專案,您必須安裝所使用語言的相依性:

同時安裝 .NET Core SDK 和 aspnetcore 及 dotnet 執行階段。

.NET Core

1.安裝程式

若要從 CLI 登入 Azure,請執行下列命令,並遵循提示來完成驗證程序。 如果您是使用 Cloud Shell,則不需要登入。

az login

確定您是透過升級命令執行最新版的 CLI。

az upgrade

接下來,如果尚未與 az upgrade 一起安裝,請安裝或更新適用於 CLI 的 Azure Web PubSub 延伸模組。

az extension add --name webpubsub --upgrade

1.建立資源群組

設定下列環境變數。 使用唯一 Web PubSub 名稱取代<預留位置>。

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

建立 Web PubSub 專案的資源群組。

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

2.部署 Web PubSub 服務執行個體

使用 az webpubsub create 命令來建立及部署 Web PubSub 服務執行個體。

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

儲存服務的連接字串。 服務 SDK 會使用連接字串來發佈訊息。

重要

在實際執行環境中,您應該使用 Azure Key Vault 安全地儲存連接字串。

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

3.將用戶端連線至服務執行個體

建立 Web PubSub 用戶端。 用戶端會維護服務的連線,直到服務終止為止。

使用 az webpubsub client 命令來啟動服務的 WebSocket 用戶端連線。 用戶端一律會連線到中樞,因此請提供要連線之用戶端的中樞名稱。

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

當您看到 JSON 訊息指出用戶端現已成功連線,並且獲指派唯一的 connectionId 時,與 Web PubSub 服務的連線已建立:

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

4.使用服務 SDK 發佈訊息

您將會使用 Azure Web PubSub SDK,將訊息發佈給連線至中樞的所有用戶端。 您可以在 C#、JavaScript、Python 及 Java 之間選擇。 每個語言的相依性都會安裝在該語言的步驟中。 Python、JavaScript 和 Java 需要 bash 殼層,才能執行本快速入門中的命令。

設定專案以發佈訊息

  1. 開啟此專案的新命令殼層。

  2. 從用戶端殼層儲存連接字串。 使用先前步驟中顯示的連接字串來取代 <your_connection_string> 預留位置。

    connection_string="<your_connection_string>"
    
  3. 現在,為您的專案選取語言。

  1. 新增名為 publisher 的新專案,以及名為 Azure.Messaging.WebPubSub 的 SDK 套件。

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. 更新 Program.cs 檔案,以使用 WebPubSubServiceClient 類別將訊息傳送至用戶端。 使用下列程式碼取代 Program.cs 檔案中的程式碼。

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

    service.SendToAllAsync() 呼叫只會將訊息傳送至中樞中的所有已連線用戶端。

  3. 執行下列命令,將訊息發佈至服務。

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. 包含 Web PubSub 用戶端的先前命令殼層會顯示已接收的訊息。

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

清理

您可以藉由刪除包含資源的資源群組,刪除在本快速入門中建立的資源。

az group delete --name $RESOURCE_GROUP --yes