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::Unknown | 0 | 메시지 상태가 알 수 없음입니다. |
QMqtt::MessageStatus::Published | 1 | 클라이언트가 자신의 구독 중 하나에 대한 메시지를 수신했습니다. 이는 QoS 레벨 1 및 2에 적용됩니다. |
QMqtt::MessageStatus::Acknowledged | 2 | 메시지가 확인되었습니다. 이는 QoS 1에 적용되며, 클라이언트 측에서 메시지 처리가 완료되었음을 나타냅니다. |
QMqtt::MessageStatus::Received | 3 | 메시지가 수신되었습니다. 이는 QoS 2에 적용됩니다. |
QMqtt::MessageStatus::Released | 4 | 메시지가 해제되었습니다. 이는 QoS 2에 적용됩니다. 게시자의 경우 메시지 처리가 완료되었습니다. |
QMqtt::MessageStatus::Completed | 5 | 메시지 처리가 완료되었습니다. 이는 QoS 2에 적용되며, 클라이언트 측에서 메시지 처리가 완료되었음을 나타냅니다. |
enum class QMqtt::PayloadFormatIndicator
페이로드 형식은 메시지의 내용에 대한 정보를 제공합니다. 이를 통해 다른 클라이언트가 메시지를 더 빠르게 처리할 수 있습니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMqtt::PayloadFormatIndicator::Unspecified | 0 | 형식은 지정되지 않습니다. |
QMqtt::PayloadFormatIndicator::UTF8Encoded | 1 | 메시지의 페이로드는 UTF-8 인코딩 문자 데이터 형식으로 구성됩니다. |
enum class QMqtt::ReasonCode
이 열거형 유형은 사용 가능한 오류 코드를 지정합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMqtt::ReasonCode::Success | 0 | 지정된 작업이 성공했습니다. |
QMqtt::ReasonCode::SubscriptionQoSLevel0 | 0 | QoS 수준 0의 구독이 생성되었습니다. |
QMqtt::ReasonCode::SubscriptionQoSLevel1 | 0x01 | QoS 수준 1의 구독이 생성되었습니다. |
QMqtt::ReasonCode::SubscriptionQoSLevel2 | 0x02 | QoS 레벨 2의 구독이 생성되었습니다. |
QMqtt::ReasonCode::NoMatchingSubscriber | 0x10 | 메시지가 서버에 수락되었지만, 이 메시지를 수신할 구독자가 없습니다. 브로커는 '성공(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::UnspecifiedError | 0x80 | 명시되지 않은 오류가 발생했습니다. |
QMqtt::ReasonCode::MalformedPacket | 0x81 | 서버로 전송된 패킷이 유효하지 않습니다. |
QMqtt::ReasonCode::ProtocolError | 0x82 | 프로토콜 오류가 발생했습니다. 대부분의 경우, 이로 인해 서버가 클라이언트 연결을 끊게 됩니다. |
QMqtt::ReasonCode::ImplementationSpecificError | 0x83 | 패킷은 유효하지만 수신자가 이를 거부합니다. |
QMqtt::ReasonCode::UnsupportedProtocolVersion | 0x84 | 요청된 프로토콜 버전이 서버에서 지원되지 않습니다. |
QMqtt::ReasonCode::InvalidClientId | 0x85 | 클라이언트 ID가 유효하지 않습니다. |
QMqtt::ReasonCode::InvalidUserNameOrPassword | 0x86 | 지정된 사용자 이름 또는 비밀번호가 유효하지 않습니다. |
QMqtt::ReasonCode::NotAuthorized | 0x87 | 클라이언트가 지정된 작업에 대한 권한이 없습니다. |
QMqtt::ReasonCode::ServerNotAvailable | 0x88 | 연결할 서버를 사용할 수 없습니다. |
QMqtt::ReasonCode::ServerBusy | 0x89 | 연결할 서버를 사용할 수 없습니다. 클라이언트는 나중에 다시 시도하라는 메시지를 받습니다. |
QMqtt::ReasonCode::ClientBanned | 0x8A | 클라이언트가 서버에서 차단되었습니다. |
QMqtt::ReasonCode::InvalidAuthenticationMethod | 0x8C | 지정된 인증 방법이 유효하지 않습니다. |
QMqtt::ReasonCode::InvalidTopicFilter | 0x8F | 지정된 토픽 필터가 유효하지 않습니다. |
QMqtt::ReasonCode::InvalidTopicName | 0x90 | 지정된 토픽 이름이 유효하지 않습니다. |
QMqtt::ReasonCode::MessageIdInUse | 0x91 | 이전 패킷에서 사용된 메시지 ID가 이미 사용 중입니다. |
QMqtt::ReasonCode::MessageIdNotFound | 0x92 | 이전 패킷에서 사용된 메시지 ID를 찾을 수 없습니다. |
QMqtt::ReasonCode::PacketTooLarge | 0x95 | 수신된 패킷의 크기가 너무 큽니다. QMqttServerConnectionProperties::maximumPacketSize()도 참조하십시오. |
QMqtt::ReasonCode::QuotaExceeded | 0x97 | 관리자가 설정한 제한을 초과했습니다. |
QMqtt::ReasonCode::InvalidPayloadFormat | 0x99 | 페이로드 형식이 유효하지 않습니다. QMqttPublishProperties::payloadFormatIndicator()도 참조하십시오. |
QMqtt::ReasonCode::RetainNotSupported | 0x9A | 서버가 보존 메시지를 지원하지 않습니다. QMqttServerConnectionProperties::retainAvailable()도 참조하십시오. |
QMqtt::ReasonCode::QoSNotSupported | 0x9B | 요청된 QoS 수준이 지원되지 않습니다. QMqttServerConnectionProperties::maximumQoS()도 참조하십시오. |
QMqtt::ReasonCode::UseAnotherServer | 0x9C | 클라이언트가 연결을 시도하는 서버를 사용할 수 없습니다. QMqttServerConnectionProperties::serverReference()도 참조하십시오. |
QMqtt::ReasonCode::ServerMoved | 0x9D | 클라이언트가 연결을 시도하는 서버가 새 주소로 이동했습니다. QMqttServerConnectionProperties::serverReference()도 참조하십시오. |
QMqtt::ReasonCode::SharedSubscriptionsNotSupported | 0x9E | 공유 구독은 지원되지 않습니다. QMqttServerConnectionProperties::sharedSubscriptionSupported()도 참조하십시오. |
QMqtt::ReasonCode::ExceededConnectionRate | 0x9F | 연결 속도 제한을 초과했습니다. |
QMqtt::ReasonCode::SubscriptionIdsNotSupported | 0xA1 | 구독 ID가 지원되지 않습니다. QMqttServerConnectionProperties::subscriptionIdentifierSupported()도 참조하십시오. |
QMqtt::ReasonCode::WildCardSubscriptionsNotSupported | 0xA2 | 서버에서 와일드카드를 사용하는 구독을 지원하지 않습니다. QMqttServerConnectionProperties::wildcardSupported()도 참조하십시오. |
모든 사용 사례에서 모든 값을 사용할 수 있는 것은 아닙니다. 특히, 일부 서버는 특정 명령에 적합하지 않은 이유 코드를 거부할 수 있습니다. 특정 작업에 대해 예상되는 이유 코드는 아래 표를 참조하십시오.
| 이유 코드 | 연결 속성 | 구독 속성 | 메시지 속성 |
|---|---|---|---|
| 성공 | X | X | X |
| 구독 QoS 레벨 0 | X | ||
| 구독 QoS 레벨 1 | X | ||
| 구독 QoS 레벨 2 | X | ||
| 일치하는 가입자 없음 | X | ||
| 미지정 오류 | X | X | X |
| 잘못된 패킷 | X | ||
| 프로토콜 오류 | X | ||
| 구현별 오류 | X | X | X |
| 지원되지 않는 프로토콜 버전 | X | ||
| 잘못된 클라이언트 ID | X | ||
| 사용자 이름 또는 비밀번호 오류 | X | ||
| 권한 없음 | X | X | X |
| 서버 사용 불가 | X | ||
| 서버 사용 중 | X | ||
| 클라이언트 차단됨 | X | ||
| 인증 방법이 유효하지 않음 | X | ||
| 잘못된 주제 필터 | X | ||
| 잘못된 주제 이름 | X | X | |
| 사용 중인 메시지 ID | X | X | |
| MessageIdNotFound | X | ||
| 패킷이 너무 큼 | X | ||
| 할당량 초과 | X | X | X |
| 페이로드 형식이 올바르지 않음 | X | X | |
| 유지 불가 | 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.