Python용 Azure Web PubSub 서비스 클라이언트 라이브러리
Azure Web PubSub 서비스는 개발자가 실시간 기능 및 게시-구독 패턴을 사용하여 웹 애플리케이션을 쉽게 빌드할 수 있도록 도와주는 Azure 관리 서비스입니다. 서버와 클라이언트 간 또는 클라이언트 간에 실시간 게시-구독 메시징이 필요한 시나리오에서는 Azure Web PubSub 서비스를 사용할 수 있습니다. 서버에서 폴링하거나 HTTP 요청을 제출해야 하는 경우가 많은 기존의 실시간 기능도 Azure Web PubSub 서비스를 사용할 수 있습니다.
다음 다이어그램과 같이 앱 서버 쪽에서 이 라이브러리를 사용하여 WebSocket 클라이언트 연결을 관리할 수 있습니다.
이 라이브러리를 사용하여 다음을 수행합니다.
- 허브 및 그룹에 메시지를 보냅니다.
- 특정 사용자 및 연결에 메시지를 보냅니다.
- 사용자와 연결을 그룹으로 구성합니다.
- 연결 종료.
- 기존 연결에 대한 권한 부여, 철회 및 확인.
필수 조건
- 이 패키지를 사용하려면 Python 3.6 이상이 필요합니다.
- 이 패키지를 사용하려면 Azure 구독과 Azure WebPubSub 서비스 인스턴스가 필요합니다.
- 기존 Azure Web PubSub 서비스 인스턴스.
Important
Python 2.7에 대한 Azure SDK Python 패키지 지원은 2022년 1월 1일에 종료됩니다. 자세한 내용은 Azure SDK Python 패키지 지원을 참조하세요.
패키지 설치
이 명령을 사용하여 패키지를 설치합니다.
python -m pip install azure-messaging-webpubsubservice
WebPubSubServiceClient 만들기 및 인증
연결 문자열을 사용하여 WebPubSubServiceClient
를 인증할 수 있습니다.
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string(connection_string='<connection_string>', hub='hub')
또는 서비스 엔드포인트 및 액세스 키를 사용합니다.
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> from azure.core.credentials import AzureKeyCredential
>>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=AzureKeyCredential("<access_key>"))
또는 Microsoft Entra ID를 사용합니다.
pip가
azure-identity
를 설치합니다.DefaultAzureCredential을 사용하도록 코드를 업데이트합니다.
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient >>> from azure.identity import DefaultAzureCredential >>> service = WebPubSubServiceClient(endpoint='<endpoint>', hub='hub', credential=DefaultAzureCredential())
예제
JSON 형식으로 메시지 브로드캐스트
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub1')
>>> service.send_to_all(message = {
'from': 'user1',
'data': 'Hello world'
})
WebSocket 클라이언트는 JSON 직렬화된 텍스트 {"from": "user1", "data": "Hello world"}
를 받습니다.
일반 텍스트 형식으로 메시지 브로드캐스트
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub1')
>>> service.send_to_all(message = 'Hello world', content_type='text/plain')
WebSocket 클라이언트는 텍스트 Hello world
를 받습니다.
이진 형식으로 메시지 브로드캐스트
>>> import io
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
>>> service = WebPubSubServiceClient.from_connection_string('<connection_string>', hub='hub')
>>> service.send_to_all(message=io.StringIO('Hello World'), content_type='application/octet-stream')
WebSocket 클라이언트는 이진 텍스트 b'Hello world'
를 받습니다.
로깅
이 SDK는 Python 표준 로깅 라이브러리를 사용합니다.
stdout
또는 원하는 위치에 로깅 인쇄 디버깅 정보를 구성할 수 있습니다.
import sys
import logging
from azure.identity import DefaultAzureCredential
>>> from azure.messaging.webpubsubservice import WebPubSubServiceClient
# Create a logger for the 'azure' SDK
logger = logging.getLogger('azure')
logger.setLevel(logging.DEBUG)
# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
endpoint = "<endpoint>"
credential = DefaultAzureCredential()
# This WebPubSubServiceClient will log detailed information about its HTTP sessions, at DEBUG level
service = WebPubSubServiceClient(endpoint=endpoint, hub='hub', credential=credential, logging_enable=True)
마찬가지로 logging_enable
은 WebPubSubServiceClient
에 대해 상세 로깅을 사용하지 않는 경우에도 한 호출에만 사용하도록 설정할 수 있습니다.
result = service.send_to_all(..., logging_enable=True)
HTTP 요청 및 응답 세부 정보는 이 로깅 구성을 사용하여 stdout
에 인쇄됩니다.
다음 단계
자세한 샘플은 Python 샘플용 Azure Web PubSub 서비스 클라이언트 라이브러리를 참조하세요.
참여
이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 기여자 라이선스 계약을 참조하세요.
끌어오기 요청을 제출하면 CLA-봇은 CLA를 제공하고 PR을 적절하게 데코레이팅해야 하는지를 자동으로 결정합니다(예: “레이블”, “설명”). 봇에서 제공하는 지침을 따릅니다. 이 작업은 CLA를 사용하여 모든 리포지토리에서 한 번만 수행하면 됩니다.
이 프로젝트는 Microsoft 오픈 소스 준수 사항을 채택했습니다. 자세한 내용은 사용 규정 FAQ를 참조하고, 질문이나 의견이 있는 경우에는 오픈 소스 규정 팀에 문의하세요.