이 페이지에서

QMqtt Namespace

Qt MQTT 모듈 전반에 걸쳐 사용되는 각종 식별자가 포함되어 있습니다. 더 보기...

헤더: #include <qmqttglobal.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Mqtt)
target_link_libraries(mytarget PRIVATE Qt6::Mqtt)
qmake: QT += mqtt

유형

enum class MessageStatus { Unknown, Published, Acknowledged, Received, Released, Completed }
enum class PayloadFormatIndicator { Unspecified, UTF8Encoded }
enum class ReasonCode { Success, SubscriptionQoSLevel0, SubscriptionQoSLevel1, SubscriptionQoSLevel2, NoMatchingSubscriber, …, WildCardSubscriptionsNotSupported }

상세 설명

유형 설명서

enum class QMqtt::MessageStatus

이 열거형 유형은 메시지의 가능한 상태를 지정합니다. 클라이언트의 QoS 및 역할에 따라 서로 다른 메시지 상태가 예상됩니다.

상수값설명
QMqtt::MessageStatus::Unknown0메시지 상태가 알 수 없음입니다.
QMqtt::MessageStatus::Published1클라이언트가 자신의 구독 중 하나에 대한 메시지를 수신했습니다. 이는 QoS 레벨 1 및 2에 적용됩니다.
QMqtt::MessageStatus::Acknowledged2메시지가 확인되었습니다. 이는 QoS 1에 적용되며, 클라이언트 측에서 메시지 처리가 완료되었음을 나타냅니다.
QMqtt::MessageStatus::Received3메시지가 수신되었습니다. 이는 QoS 2에 적용됩니다.
QMqtt::MessageStatus::Released4메시지가 해제되었습니다. 이는 QoS 2에 적용됩니다. 게시자의 경우 메시지 처리가 완료되었습니다.
QMqtt::MessageStatus::Completed5메시지 처리가 완료되었습니다. 이는 QoS 2에 적용되며, 클라이언트 측에서 메시지 처리가 완료되었음을 나타냅니다.

enum class QMqtt::PayloadFormatIndicator

페이로드 형식은 메시지의 내용에 대한 정보를 제공합니다. 이를 통해 다른 클라이언트가 메시지를 더 빠르게 처리할 수 있습니다.

상수값설명
QMqtt::PayloadFormatIndicator::Unspecified0형식은 지정되지 않습니다.
QMqtt::PayloadFormatIndicator::UTF8Encoded1메시지의 페이로드는 UTF-8 인코딩 문자 데이터 형식으로 구성됩니다.

enum class QMqtt::ReasonCode

이 열거형 유형은 사용 가능한 오류 코드를 지정합니다.

상수값설명
QMqtt::ReasonCode::Success0지정된 작업이 성공했습니다.
QMqtt::ReasonCode::SubscriptionQoSLevel00QoS 수준 0의 구독이 생성되었습니다.
QMqtt::ReasonCode::SubscriptionQoSLevel10x01QoS 수준 1의 구독이 생성되었습니다.
QMqtt::ReasonCode::SubscriptionQoSLevel20x02QoS 레벨 2의 구독이 생성되었습니다.
QMqtt::ReasonCode::NoMatchingSubscriber0x10메시지가 서버에 수락되었지만, 이 메시지를 수신할 구독자가 없습니다. 브로커는 '성공(Success)' 대신 이 이유 코드를 보낼 수 있습니다.
QMqtt::ReasonCode::NoSubscriptionExisted (since Qt 5.15)0x11클라이언트가 일치하는 토픽 필터를 사용하고 있지 않습니다.
QMqtt::ReasonCode::ContinueAuthentication (since Qt 5.15)0x18다른 단계로 인증을 계속하십시오.
QMqtt::ReasonCode::ReAuthenticate (since Qt 5.15)0x19재인증을 시작하십시오.
QMqtt::ReasonCode::UnspecifiedError0x80명시되지 않은 오류가 발생했습니다.
QMqtt::ReasonCode::MalformedPacket0x81서버로 전송된 패킷이 유효하지 않습니다.
QMqtt::ReasonCode::ProtocolError0x82프로토콜 오류가 발생했습니다. 대부분의 경우, 이로 인해 서버가 클라이언트 연결을 끊게 됩니다.
QMqtt::ReasonCode::ImplementationSpecificError0x83패킷은 유효하지만 수신자가 이를 거부합니다.
QMqtt::ReasonCode::UnsupportedProtocolVersion0x84요청된 프로토콜 버전이 서버에서 지원되지 않습니다.
QMqtt::ReasonCode::InvalidClientId0x85클라이언트 ID가 유효하지 않습니다.
QMqtt::ReasonCode::InvalidUserNameOrPassword0x86지정된 사용자 이름 또는 비밀번호가 유효하지 않습니다.
QMqtt::ReasonCode::NotAuthorized0x87클라이언트가 지정된 작업에 대한 권한이 없습니다.
QMqtt::ReasonCode::ServerNotAvailable0x88연결할 서버를 사용할 수 없습니다.
QMqtt::ReasonCode::ServerBusy0x89연결할 서버를 사용할 수 없습니다. 클라이언트는 나중에 다시 시도하라는 메시지를 받습니다.
QMqtt::ReasonCode::ClientBanned0x8A클라이언트가 서버에서 차단되었습니다.
QMqtt::ReasonCode::InvalidAuthenticationMethod0x8C지정된 인증 방법이 유효하지 않습니다.
QMqtt::ReasonCode::InvalidTopicFilter0x8F지정된 토픽 필터가 유효하지 않습니다.
QMqtt::ReasonCode::InvalidTopicName0x90지정된 토픽 이름이 유효하지 않습니다.
QMqtt::ReasonCode::MessageIdInUse0x91이전 패킷에서 사용된 메시지 ID가 이미 사용 중입니다.
QMqtt::ReasonCode::MessageIdNotFound0x92이전 패킷에서 사용된 메시지 ID를 찾을 수 없습니다.
QMqtt::ReasonCode::PacketTooLarge0x95수신된 패킷의 크기가 너무 큽니다. QMqttServerConnectionProperties::maximumPacketSize()도 참조하십시오.
QMqtt::ReasonCode::QuotaExceeded0x97관리자가 설정한 제한을 초과했습니다.
QMqtt::ReasonCode::InvalidPayloadFormat0x99페이로드 형식이 유효하지 않습니다. QMqttPublishProperties::payloadFormatIndicator()도 참조하십시오.
QMqtt::ReasonCode::RetainNotSupported0x9A서버가 보존 메시지를 지원하지 않습니다. QMqttServerConnectionProperties::retainAvailable()도 참조하십시오.
QMqtt::ReasonCode::QoSNotSupported0x9B요청된 QoS 수준이 지원되지 않습니다. QMqttServerConnectionProperties::maximumQoS()도 참조하십시오.
QMqtt::ReasonCode::UseAnotherServer0x9C클라이언트가 연결을 시도하는 서버를 사용할 수 없습니다. QMqttServerConnectionProperties::serverReference()도 참조하십시오.
QMqtt::ReasonCode::ServerMoved0x9D클라이언트가 연결을 시도하는 서버가 새 주소로 이동했습니다. QMqttServerConnectionProperties::serverReference()도 참조하십시오.
QMqtt::ReasonCode::SharedSubscriptionsNotSupported0x9E공유 구독은 지원되지 않습니다. QMqttServerConnectionProperties::sharedSubscriptionSupported()도 참조하십시오.
QMqtt::ReasonCode::ExceededConnectionRate0x9F연결 속도 제한을 초과했습니다.
QMqtt::ReasonCode::SubscriptionIdsNotSupported0xA1구독 ID가 지원되지 않습니다. QMqttServerConnectionProperties::subscriptionIdentifierSupported()도 참조하십시오.
QMqtt::ReasonCode::WildCardSubscriptionsNotSupported0xA2서버에서 와일드카드를 사용하는 구독을 지원하지 않습니다. QMqttServerConnectionProperties::wildcardSupported()도 참조하십시오.

모든 사용 사례에서 모든 값을 사용할 수 있는 것은 아닙니다. 특히, 일부 서버는 특정 명령에 적합하지 않은 이유 코드를 거부할 수 있습니다. 특정 작업에 대해 예상되는 이유 코드는 아래 표를 참조하십시오.

이유 코드연결 속성구독 속성메시지 속성
성공XXX
구독 QoS 레벨 0X
구독 QoS 레벨 1X
구독 QoS 레벨 2X
일치하는 가입자 없음X
미지정 오류XXX
잘못된 패킷X
프로토콜 오류X
구현별 오류XXX
지원되지 않는 프로토콜 버전X
잘못된 클라이언트 IDX
사용자 이름 또는 비밀번호 오류X
권한 없음XXX
서버 사용 불가X
서버 사용 중X
클라이언트 차단됨X
인증 방법이 유효하지 않음X
잘못된 주제 필터X
잘못된 주제 이름XX
사용 중인 메시지 IDXX
MessageIdNotFoundX
패킷이 너무 큼X
할당량 초과XXX
페이로드 형식이 올바르지 않음XX
유지 불가X
QoS 미지원X
다른 서버 사용X
서버이동X
공유 구독 미지원X
연결 속도 초과X
구독 ID 미지원X
와일드카드 구독 미지원X

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.