Azure Web PubSub 기본 개념

Azure Web PubSub 서비스를 사용하면 실시간 메시징 웹 애플리케이션을 빌드할 수 있습니다. 클라이언트는 표준 WebSocket 프로토콜을 사용하여 서비스에 연결하고, 서비스는 이러한 클라이언트를 관리할 수 있도록 REST API 및 SDK를 노출합니다.

사용 약관

다음은 서비스에서 사용하는 몇 가지 중요한 용어입니다.

  • 커넥트: 클라이언트 또는 클라이언트 연결이라고도 하는 연결은 Web PubSub 서비스에 연결된 개별 WebSocket 연결을 나타냅니다. 성공적으로 연결되면 Web PubSub 서비스에서 고유한 연결 ID를 이 연결에 할당합니다.

  • 허브: 허브는 일련의 클라이언트 연결에 대한 논리적 개념입니다. 일반적으로 하나의 시나리오(예: 채팅 허브 또는 알림 허브)에 하나의 허브를 사용합니다. 클라이언트 연결이 연결되면 허브에 연결되고, 해당 수명 동안 해당 허브에 속합니다. 클라이언트 연결이 허브에 연결되면 허브가 존재합니다. 애플리케이션마다 서로 다른 허브 이름을 사용하여 하나의 Azure Web PubSub 서비스를 공유할 수 있습니다. 허브 수에 엄격한 제한은 없지만 허브는 그룹에 비해 더 많은 서비스 부하를 사용합니다. 동적으로 생성하는 대신 미리 결정된 허브 집합을 사용하는 것이 좋습니다.

  • 그룹: 그룹은 허브에 대한 연결의 하위 집합입니다. 그룹에 클라이언트 연결을 추가하거나 원하는 경우 그룹에서 클라이언트 연결을 제거할 수 있습니다. 예를 들어 클라이언트가 채팅방에 참가하거나 채팅방에서 나가면 이 채팅방이 그룹일 수 있습니다. 클라이언트는 여러 그룹에 참가할 수 있으며, 한 그룹에 여러 클라이언트가 포함될 수 있습니다. 그룹은 그룹 "세션"과 같습니다. 그룹 세션은 누군가가 그룹에 조인하면 만들어지고 그룹에 아무도 없으면 세션이 사라집니다. 그룹에 보낸 메시지는 그룹에 연결된 모든 클라이언트에 전달됩니다.

  • 사용자: Web PubSub에 대한 연결은 한 명의 사용자에게 속할 수 있습니다. 단일 사용자가 여러 디바이스 또는 여러 브라우저 탭에서 연결된 경우와 같이 사용자에게 여러 연결이 있을 수 있습니다.

  • 메시지: 클라이언트가 연결되면 메시지를 업스트림 애플리케이션으로 보내거나 WebSocket 연결을 통해 업스트림 애플리케이션에서 메시지를 받을 수 있습니다. 메시지는 일반 텍스트, 이진 파일 또는 JSON 형식일 수 있으며 최대 크기는 1MB입니다.

  • 클라이언트 커넥트ion커넥트ionId: 클라이언트가 엔드포인트에 /client 연결되고, 연결되면 서비스에서 클라이언트 연결의 고유 ID로 고유 connectionId ID가 생성됩니다. 그러면 사용자는 이 connectionId를 사용하여 클라이언트 연결을 관리할 수 있습니다. 세부 정보는 클라이언트 프로토콜 섹션에 설명되어 있습니다.

  • 클라이언트 이벤트: 이벤트는 클라이언트 연결의 수명 주기 동안 생성됩니다. 예를 들어 간단한 WebSocket 클라이언트 연결은 서비스에 연결하려고 할 때 이벤트, connected 서비스에 성공적으로 연결한 경우 이벤트, message 서비스에 메시지를 보낼 때의 이벤트 및 disconnected 서비스에서 연결을 끊을 때 이벤트를 만듭니다connect. 클라이언트 이벤트에 대한 세부 정보는 클라이언트 프로토콜 섹션에 설명되어 있습니다.

  • 이벤트 처리기: 이벤트 처리기에는 클라이언트 이벤트를 처리하는 논리가 포함됩니다. 포털 또는 Azure CLI를 통해 서비스에 이벤트 처리기를 미리 등록하고 구성합니다. 세부 정보는 이벤트 처리기 섹션에 설명되어 있습니다.

  • 이벤트 수신기(미리 보기): 이벤트 수신기는 클라이언트 이벤트를 수신하지만 응답을 통해 클라이언트의 수명을 방해할 수는 없습니다. 자세한 내용은 이벤트 수신기 섹션에 설명되어 있습니다.

  • 서버: 서버는 클라이언트 이벤트를 처리하거나, 클라이언트 연결을 관리하거나, 그룹에 메시지를 게시할 수 있습니다. 이벤트 처리기와 이벤트 수신기는 모두 서버 쪽으로 간주됩니다. 서버에 대한 자세한 내용은 서버 프로토콜 섹션에 설명되어 있습니다.

Important

HubGroupUserId 클라이언트를 관리하고 메시지를 보낼 때 중요한 역할입니다. 다른 REST API 호출에서 일반 텍스트로 매개 변수가 필요합니다. 따라서 이러한 필드에 중요한 정보를 넣지 마세요 . 예를 들어 누출 위험이 높은 자격 증명 또는 전달자 토큰입니다.

워크플로

서비스를 사용하는 일반적인 워크플로는 다음과 같습니다.

Diagram showing the Web PubSub service workflow.

위의 워크플로 그래프에서 설명한 대로 다음이 구성됩니다.

  1. 클라이언트WebSocket 전송을 사용하여 서비스 /client 엔드포인트에 연결합니다. 서비스는 모든 WebSocket 프레임을 구성된 업스트림(서버)으로 전달합니다. WebSocket 연결은 서버에서 처리할 사용자 지정 하위 프로토콜과 연결하거나 클라이언트가 pub/sub를 직접 수행할 수 있도록 하는 서비스 지원 하위 프로토콜(예: json.webpubsub.azure.v1)과 연결할 수 있습니다. 세부 정보는 클라이언트 프로토콜에 설명되어 있습니다.

  2. 서비스는 다른 클라이언트 이벤트에서 CloudEvents 프로토콜을 사용하여 서버를 호출합니다. CloudEvents는 CNCF(Cloud Native Computing Foundation)에서 호스트하는 이벤트의 구조 및 메타데이터 설명에 대한 표준화된 프로토콜 독립적 정의입니다. 세부 정보는 서버 프로토콜에 설명되어 있습니다.

  3. 서버는 REST API로 서비스를 호출하여 클라이언트에 메시지를 보내거나 연결된 클라이언트를 관리할 수 있습니다. 세부 정보는 서버 프로토콜에 설명되어 있습니다.