다음을 통해 공유


빠른 시작: 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에서 메시지를 게시하는 데 사용됩니다.

Important

프로덕션 환경에서는 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"

이제 클라이언트가 성공적으로 연결되고 고유한 connectionId가 할당됨을 나타내는 JSON 메시지를 표시되면 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라는 새 프로젝트와 SDK 패키지 Azure.Messaging.WebPubSub를 추가합니다.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. WebPubSubServiceClient 클래스를 사용하여 클라이언트에 메시지를 보내도록 Program.cs 파일을 업데이트합니다. 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