CONNECT 클라이언트가 브로커에 연결 요청

클라이언트와 브로커 사이에 TCP/IP 소켓 연결이 설정되어 있으면 프로토콜 레벨의 세션이 필요합니다. 연결 방향은 클라이언트에서 브로커이며 클라이언트는 브로커 리스너 기능을 지원한다고 가정합니다.

고정 헤더

다음 표에는 고정된 헤더 형식이 표시되어 있습니다.

비트 7 6 5 4 3 2 1 0
바이트 1 메시지 유형(1) DUP 플래그 QoS 레벨 RETAIN
  0 0 0 1 x x x x
바이트 2 나머지 길이

DUP, QoS 및 RETAIN 플래그는 CONNECT 메시지에서는 사용되지 않습니다.

나머지 길이는 가변 헤더(12바이트) 길이 및 페이로드(Payload) 길이입니다. 다중 바이트 필드일 수 있습니다.

가변 헤더

아래 표에는 가변 헤더 형식의 예가 표시되어 있습니다.

  설명 7 6 5 4 3 2 1 0
프로토콜 이름
바이트 1 길이 MSB (0) 0 0 0 0 0 0 0 0
바이트 2 길이 LSB(6) 0 0 0 0 0 1 1 0
바이트 3 'M' 0 1 0 0 1 1 0 1
바이트 4 'Q' 0 1 0 1 0 0 0 1
바이트 5 'I' 0 1 0 0 1 0 0 1
바이트 6 's' 0 1 1 1 0 0 1 1
바이트 7 'd' 0 1 1 0 0 1 0 0
바이트 8 'p' 0 1 1 1 0 0 0 0
프로토콜 버전 번호
바이트 9 버전(3) 0 0 0 0 0 0 1 1
Connect 플래그
바이트 10

Will RETAIN(0)
Will QoS(01)
Will 플래그(1)
Clean Start(1)

x x 0 0 1 1 1 x
활성 유지(Keepalive) 타이머
바이트 11 활성 유지 MSB(0) 0 0 0 0 0 0 0 0
바이트 12 활성 유지 LSB(10) 0 0 0 0 1 0 1 0
Clean Start 플래그
설정(1).
활성 유지(Keepalive) 타이머
10초(0x000A)로 설정됨
Will 메시지
  • Will 플래그가 설정됨(1)
  • Will QoS 필드가 1임
  • Will RETAIN 플래그를 지움(0)

페이로드(Payload)

CONNECT 메시지의 페이로드(payload)에는 하나 또는 세 개의 UTF 인코딩 문자열이 포함되어 있습니다. 가변 헤더의 Connect 플래그 바이트에 Will 플래그가 설정되어 있으면 페이로드(payload)는 세 개의 UTF 인코딩 문자열 모두를 포함해야 합니다.
클라이언트 ID

첫 번째 UTF 인코딩 문자열. 클라이언트 ID의 길이는 1 - 23자이며 브로커에 대해 클라이언트를 고유하게 식별합니다. 이 ID는 단일 브로커에 연결된 모든 클라이언트에 걸쳐 고유해야 하며 QoS 레벨이 1과 2인 메시지 ID 메시지를 핸들링하는 데에는 반드시 필요합니다. 클라이언트 ID에 23자 이상이 포함되면, 브로커는 CONNECT 메시지에 CONNACK 리턴 코드 2로 응답하며 ID는 거부됩니다.

Will 토픽

두 번째 UTF 인코딩 문자열. Will 메시지는 Will 토픽에 publish됩니다. QoS 레벨은 Will QoS 필드에 정의되며, RETAIN 상태는 가변 헤더의 Will RETAIN 플래그에 의해 정의됩니다.

Will 메시지

세 번째 UTF 인코딩 문자열. Will 메시지는 클라이언트가 예상치 못하게 연결이 끊긴 경우 Will 토픽에 publish되는 메시지의 컨텐츠를 정의합니다.

Will 메시지가 CONNECT 메시지에 UTF 인코딩되어 있더라도 Will 토픽으로 publish될 때에는 처음 두 바이트가 아닌 메시지 바이트만이 송신됩니다. 브로커가 Will 메시지를 실행할 때 송신되는 메시지는 UTF 인코딩되지 않은 원시 ASCII입니다.

응답

브로커는 클라이언트가 보낸 CONNECT 메시지에 대한 응답으로 CONNACK 메시지를 송신합니다.

클라이언트가 "적당한" 시간 내에 브로커에서 CONNACK 메시지를 수신하지 못할 경우, 클라이언트는 TCP/IP 소켓 연결을 닫고 브로커에 대한 소켓을 연 다음 CONNECT 메시지를 발행하여 세션을 재시작합니다. "적당한" 시간은 응용프로그램 유형 및 통신 인프라스트럭처에 따라 다릅니다.

주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac10910_