Share via


단일 클라이언트에 여러 세션을 수립하는 방법

이 가이드에서는 Event Grid 네임스페이스에 단일 클라이언트의 여러 세션을 설정하는 방법을 알아봅니다.

필수 조건

다중 세션 지원

클라이언트당 여러 세션을 만들려면 CONNECT 패킷의 Username 속성에 클라이언트 인증 이름을 제공합니다. 그런 다음 CONNECT 패킷의 ClientID(클라이언트 식별자) 속성에 세션 ID를 제공할 수 있습니다.

  • Username 속성이 CONNECT 패킷에 제공되지 않으면 클라이언트에 여러 세션을 만들 수 없습니다.
  • ClientID 필드는 비워 둘 수 없습니다.
  • ClientID는 네임스페이스의 모든 클라이언트에서 고유해야 합니다.

클라이언트가 세션 이름을 표시하여 다른 클라이언트의 활성 세션을 인수하려고 하면 권한 없음 오류와 함께 해당 연결 요청이 거부됩니다. 예를 들어 클라이언트 B가 해당 시간에 클라이언트 A에 할당된 세션 123에 연결하려고 하면 클라이언트 B의 연결 요청이 거부됩니다.

세션을 종료하지 않고 클라이언트의 연결이 끊어진 경우 다른 클라이언트는 세션이 만료될 때까지 해당 세션 이름을 사용할 수 없습니다. 예를 들어 클라이언트 A가 세션 이름이 123인 세션을 만든 경우 클라이언트 A의 연결이 끊어지면 클라이언트 B는 원래 세션이 만료될 때까지 세션 123에 연결할 수 없습니다.

CONNECT 구성 MQTT CONNECT 패킷에서 클라이언트의 ID를 나타내는 Username 필드에 클라이언트 인증 이름을 포함합니다. 다음은 클라이언트 인증 이름이 "ipv4=127.0.0.1"인 클라이언트 메타데이터의 예입니다.

Screenshot showing the client configuration with client authentication name information highlighted.

이제 클라이언트를 네임스페이스에 연결하는 동안 MQTT CONNECT 패킷의 클라이언트 식별자 필드를 세션 식별자로 사용할 수 있습니다.

예를 들어 클라이언트 구성에 따라 동일한 클라이언트의 필드 값이 있는 두 개의 CONNECT 패킷을 보낼 수 있습니다.

MQTTX 애플리케이션을 사용하여 샘플 연결 설정을 볼 수 있습니다.

첫 번째 연결 패킷:

  • username: “ipv4=127.0.0.1”
  • clientId: “sessionId1”

Screenshot showing the MQTTX application client configuration with first session.

두 번째 연결 패킷:

  • username: “ipv4=127.0.0.1”
  • clientId: “sessionId2”

creenshot showing the MQTTX application client configuration with second session.

동일한 클라이언트 인증서 자격 증명을 사용하여 두 세션을 모두 인증할 수 있습니다.