Azure Web PubSub Service 는 개발자가 실시간 기능 및 게시-구독 패턴으로 웹 애플리케이션을 쉽게 빌드할 수 있도록 도와주는 Azure 관리형 서비스입니다. 서버와 클라이언트 간 또는 클라이언트 간에 실시간 게시-구독 메시징이 필요한 시나리오는 Azure Web PubSub 서비스를 사용할 수 있습니다. 서버에서 폴링하거나 HTTP 요청을 제출해야 하는 기존의 실시간 기능도 Azure Web PubSub 서비스를 사용할 수 있습니다.
다음 다이어그램과 같이 앱 서버 쪽에서 이 라이브러리를 사용하여 WebSocket 클라이언트 연결을 관리할 수 있습니다.
이 라이브러리를 사용하여 다음을 수행합니다.
- 허브 및 그룹에 메시지를 보냅니다.
- 특정 사용자 및 연결에 메시지를 보냅니다.
- 사용자 및 연결을 그룹으로 구성합니다.
- 연결을 닫습니다.
- 기존 연결에 대한 권한을 부여, 해지 및 확인합니다.
필수 조건
- 이 패키지를 사용하려면 Python 3.6 이상이 필요합니다.
- 이 패키지를 사용하려면 Azure 구독 및 Azure WebPubSub 서비스 인스턴스 가 필요합니다.
- 기존 Azure Web PubSub 서비스 인스턴스입니다.
중요합니다
Python 2.7에 대한 Azure SDK Python 패키지 지원은 2022년 1월 01일에 종료됩니다. 자세한 내용은 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 install
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)
마찬가지로, WebPubSubServiceClient이 활성화되지 않은 경우에도 logging_enable을(를) 사용하여 단일 호출에 대해 자세한 로깅을 활성화할 수 있습니다.
result = service.send_to_all(..., logging_enable=True)
HTTP 요청 및 응답 세부 정보는 이 로깅 구성으로 stdout 인쇄됩니다.
다음 단계
자세한 샘플은 Python 샘플용 Azure Web PubSub 서비스 클라이언트 라이브러리를 참조하세요.
Contributing
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 기여자 사용권 계약을 참조하세요.
끌어오기 요청을 제출하면 CLA-봇은 CLA를 제공하고 PR을 적절하게 데코레이팅해야 하는지를 자동으로 결정합니다(예: “레이블”, “설명”). 봇에서 제공하는 지침을 따릅니다. CLA를 사용하여 모든 리포지토리에서 한 번만 이 작업을 수행해야 합니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 오픈 소스 행동 팀에 질문이나 의견을 문의하세요.