QMqttClient Class
QMqttClient 클래스는 MQTT 브로커와 통신하는 중앙 액세스 지점을 나타냅니다. 더 보기...
| 헤더: | #include <QMqttClient> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Mqtt) target_link_libraries(mytarget PRIVATE Qt6::Mqtt) |
| qmake: | QT += mqtt |
| 상속: | QObject |
공개 유형
| enum | ClientError { NoError, InvalidProtocolVersion, IdRejected, ServerUnavailable, BadUsernameOrPassword, …, Mqtt5SpecificError } |
| enum | ClientState { Disconnected, Connecting, Connected } |
| enum | ProtocolVersion { MQTT_3_1, MQTT_3_1_1, MQTT_5_0 } |
| enum | TransportType { IODevice, AbstractSocket, SecureSocket, WebSocket, SecureWebSocket } |
속성
|
|
공개 함수
| QMqttClient(QObject *parent = nullptr) | |
| virtual | ~QMqttClient() override |
| void | authenticate(const QMqttAuthenticationProperties &prop) |
| bool | autoKeepAlive() const |
| bool | cleanSession() const |
| QString | clientId() const |
| void | connectToHost() |
| void | connectToHostEncrypted(const QSslConfiguration &conf) |
(since 6.10) void | connectToHostWebSocket(QWebSocket *webSocket = nullptr) |
(since 6.10) void | connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr) |
| QMqttConnectionProperties | connectionProperties() const |
| void | disconnectFromHost() |
| QMqttClient::ClientError | error() const |
| QString | hostname() const |
| quint16 | keepAlive() const |
| QMqttLastWillProperties | lastWillProperties() const |
| QString | password() const |
| quint16 | port() const |
| QMqttClient::ProtocolVersion | protocolVersion() const |
| qint32 | publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false) |
| qint32 | publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false) |
| bool | requestPing() |
| QMqttServerConnectionProperties | serverConnectionProperties() const |
| void | setConnectionProperties(const QMqttConnectionProperties &prop) |
| void | setLastWillProperties(const QMqttLastWillProperties &prop) |
| void | setTransport(QIODevice *device, QMqttClient::TransportType transport) |
| QMqttClient::ClientState | state() const |
| QMqttSubscription * | subscribe(const QMqttTopicFilter &topic, quint8 qos = 0) |
| QMqttSubscription * | subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0) |
| QIODevice * | transport() const |
| void | unsubscribe(const QMqttTopicFilter &topic) |
| void | unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties) |
| QString | username() const |
| QByteArray | willMessage() const |
| quint8 | willQoS() const |
| bool | willRetain() const |
| QString | willTopic() const |
공개 슬롯
| void | setAutoKeepAlive(bool autoKeepAlive) |
| void | setCleanSession(bool cleanSession) |
| void | setClientId(const QString &clientId) |
| void | setError(QMqttClient::ClientError error) |
| void | setHostname(const QString &hostname) |
| void | setKeepAlive(quint16 keepAlive) |
| void | setPassword(const QString &password) |
| void | setPort(quint16 port) |
| void | setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion) |
| void | setState(QMqttClient::ClientState state) |
| void | setUsername(const QString &username) |
| void | setWillMessage(const QByteArray &willMessage) |
| void | setWillQoS(quint8 willQoS) |
| void | setWillRetain(bool willRetain) |
| void | setWillTopic(const QString &willTopic) |
신호
| void | authenticationFinished(const QMqttAuthenticationProperties &p) |
| void | authenticationRequested(const QMqttAuthenticationProperties &p) |
| void | autoKeepAliveChanged(bool autoKeepAlive) |
| void | brokerSessionRestored() |
| void | cleanSessionChanged(bool cleanSession) |
| void | clientIdChanged(QString clientId) |
| void | connected() |
| void | disconnected() |
| void | errorChanged(QMqttClient::ClientError error) |
| void | hostnameChanged(QString hostname) |
| void | keepAliveChanged(quint16 keepAlive) |
| void | messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName()) |
| void | messageSent(qint32 id) |
| void | messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties) |
| void | passwordChanged(QString password) |
| void | pingResponseReceived() |
| void | portChanged(quint16 port) |
| void | protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion) |
| void | stateChanged(QMqttClient::ClientState state) |
| void | usernameChanged(QString username) |
| void | willMessageChanged(QByteArray willMessage) |
| void | willQoSChanged(quint8 willQoS) |
| void | willRetainChanged(bool willRetain) |
| void | willTopicChanged(QString willTopic) |
상세 설명
MQTT 클라이언트는 MQTT를 사용하여 MQTT 서버( 브로커라고도 함)와 네트워크 연결을 설정하는 프로그램이나 장치입니다. 연결 요청에는 고유한 클라이언트 식별자가 포함되어야 합니다. 선택적으로 Will Topic, Will Message, 사용자 이름 및 비밀번호를 포함할 수도 있습니다.
연결이 설정되면 클라이언트는 다른 클라이언트가 수신하기를 원할 수 있는 메시지를 전송하고, 토픽에 대한 알림을 요청하기 위해 구독하고, 알림 요청을 제거하기 위해 구독을 취소하고, 브로커와의 연결을 끊을 수 있습니다.
멤버 유형 문서
enum QMqttClient::ClientError
이 열거형 유형은 클라이언트의 오류 상태를 지정합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMqttClient::NoError | 0 | 오류가 발생하지 않았습니다. |
QMqttClient::InvalidProtocolVersion | 1 | 브로커가 지정된 프로토콜 버전을 사용하는 연결을 허용하지 않습니다. |
QMqttClient::IdRejected | 2 | 클라이언트 ID 형식이 올바르지 않습니다. 이는 ID의 길이와 관련이 있을 수 있습니다. |
QMqttClient::ServerUnavailable | 3 | 네트워크 연결은 설정되었으나 브로커 측에서 서비스를 사용할 수 없습니다. |
QMqttClient::BadUsernameOrPassword | 4 | 사용자 이름 또는 비밀번호의 데이터 형식이 올바르지 않습니다. |
QMqttClient::NotAuthorized | 5 | 클라이언트에 연결 권한이 없습니다. |
QMqttClient::TransportInvalid | 256 | 기본 전송 계층에서 오류가 발생했습니다. 예를 들어, 연결이 예기치 않게 중단되었을 수 있습니다. |
QMqttClient::ProtocolViolation | 257 | 클라이언트에서 프로토콜 위반이 발생하여 연결이 종료되었습니다. |
QMqttClient::UnknownError | 258 | 알 수 없는 오류가 발생했습니다. |
QMqttClient::Mqtt5SpecificError | 259 | 이 오류는 MQTT 프로토콜 레벨 5와 관련이 있습니다. 원인 코드를 확인하면 더 자세한 정보를 얻을 수 있습니다. |
enum QMqttClient::ClientState
이 열거형 타입은 클라이언트가 진입할 수 있는 상태를 지정합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMqttClient::Disconnected | 0 | 클라이언트가 브로커와 연결이 끊어졌습니다. |
QMqttClient::Connecting | 1 | 연결 요청이 이루어졌으나, 브로커가 아직 연결을 승인하지 않은 상태입니다. |
QMqttClient::Connected | 2 | 클라이언트가 브로커에 연결되어 있습니다. |
enum QMqttClient::ProtocolVersion
이 열거형은 브로커와의 통신 시 사용할 MQTT 표준의 프로토콜 버전을 지정합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMqttClient::MQTT_3_1 | 3 | MQTT 표준 3.1 |
QMqttClient::MQTT_3_1_1 | 4 | MQTT 표준 3.1.1(일반적으로 버전 4로 불림) |
QMqttClient::MQTT_5_0 | 5 | MQTT 표준 5.0 |
enum QMqttClient::TransportType
이 열거형 유형은 브로커에 대한 연결을 인스턴스화하는 데 사용할 연결 방법을 지정합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMqttClient::IODevice | 0 | 이 전송 방식은 ` QIODevice`을 기반으로 하는 클래스를 사용합니다. |
QMqttClient::AbstractSocket | 1 | 이 전송 방식은 QAbstractSocket 을 기반으로 하는 클래스를 사용합니다. |
QMqttClient::SecureSocket | 2 | 이 전송은 QSslSocket 을 기반으로 하는 클래스를 사용합니다. |
QMqttClient::WebSocket (since Qt 6.10) | 3 | 이 전송은 QIODevice 을 기반으로 하는 클래스를 사용하며, 이 클래스는 내부적으로 QWebSocket 을 사용합니다. |
QMqttClient::SecureWebSocket (since Qt 6.10) | 4 | 이 전송은 QIODevice 을 기반으로 하는 클래스를 사용하며, 이 클래스는 내부적으로 보안 QWebSocket 을 사용합니다. |
속성 문서
autoKeepAlive : bool
이 속성은 클라이언트가 서버에 대한 키프얼라이브 메시지를 자동으로 관리할지 여부를 결정합니다.
이 속성이 ' true'인 경우, 클라이언트는 ' keepAlive ' 간격으로 서버에 자동으로 핑 메시지를 보냅니다.
그렇지 않은 경우, 사용자는 연결의 지정된 간격 내에 requestPing 를 수동으로 호출해야 합니다. 해당 간격 내에 핑이 전송되지 않으면 서버는 연결을 끊습니다.
이 속성의 기본값은 true 입니다.
액세스 함수:
| bool | autoKeepAlive() const |
| void | setAutoKeepAlive(bool autoKeepAlive) |
알림 신호:
| void | autoKeepAliveChanged(bool autoKeepAlive) |
keepAlive(), requestPing(), serverConnectionProperties(), pingResponseReceived()도 참조하십시오 .
cleanSession : bool
이 속성은 브로커에 연결한 후의 상태를 저장합니다.
액세스 함수:
| bool | cleanSession() const |
| void | setCleanSession(bool cleanSession) |
알림 신호:
| void | cleanSessionChanged(bool cleanSession) |
clientId : QString
이 속성은 클라이언트의 식별자 값을 저장합니다.
각 클라이언트는 MQTT 브로커에 연결하기 위해 고유한 ID를 가져야 합니다. 사용자가 클라이언트 ID를 지정하지 않은 경우, 연결이 설정될 때 ID가 자동으로 생성됩니다.
액세스 함수:
| QString | clientId() const |
| void | setClientId(const QString &clientId) |
알림 신호:
| void | clientIdChanged(QString clientId) |
error : ClientError
클라이언트의 현재 오류를 지정합니다.
액세스 함수:
| QMqttClient::ClientError | error() const |
| void | setError(QMqttClient::ClientError error) |
알림 신호:
| void | errorChanged(QMqttClient::ClientError error) |
hostname : QString
이 속성은 연결할 MQTT 브로커의 호스트명을 저장합니다.
setTransport()를 통해 전송 방식이 지정되지 않은 경우, 클라이언트는 지정된 호스트명에 직접 소켓 연결을 생성합니다.
액세스 함수:
| QString | hostname() const |
| void | setHostname(const QString &hostname) |
알림 신호:
| void | hostnameChanged(QString hostname) |
keepAlive : quint16
이 속성은 브로커로 정기적인 핑 메시지를 전송하는 간격을 지정합니다.
브로커와의 연결이 설정되면, 클라이언트는 여전히 연결 가능한 상태임을 알리기 위해 빈번하게 업데이트를 전송해야 합니다. 이러한 업데이트 간의 간격은 이 속성으로 지정됩니다.
간격은 초 단위로 지정됩니다.
브로커가 유예 기간 내에 응답하지 않으면 연결이 종료됩니다.
액세스 함수:
| quint16 | keepAlive() const |
| void | setKeepAlive(quint16 keepAlive) |
알림 신호:
| void | keepAliveChanged(quint16 keepAlive) |
autoKeepAlive(), requestPing(), pingResponseReceived()도 참조하십시오 .
password : QString
이 속성은 브로커에 연결하는 데 필요한 암호를 저장합니다.
액세스 함수:
| QString | password() const |
| void | setPassword(const QString &password) |
알림 신호:
| void | passwordChanged(QString password) |
port : quint16
이 속성은 MQTT 브로커에 연결할 포트를 지정합니다.
setTransport()를 통해 전송 방식이 지정되지 않은 경우, 클라이언트는 이 포트 번호를 사용하는 호스트에 대한 소켓 연결을 생성합니다.
액세스 함수:
| quint16 | port() const |
| void | setPort(quint16 port) |
알림 신호:
| void | portChanged(quint16 port) |
protocolVersion : ProtocolVersion
이 속성은 연결에 사용할 MQTT 표준 버전을 지정합니다.
클라이언트가 브로커에 연결할 때 사용하는 표준 버전을 지정합니다. 유효한 값은 다음과 같습니다:
- 3: MQTT 표준 버전 3.1.
- 4: MQTT 표준 버전 3.1.1(일반적으로 MQTT 4라고 함).
- 5: MQTT 표준 5.0.
액세스 함수:
| QMqttClient::ProtocolVersion | protocolVersion() const |
| void | setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion) |
알림 신호:
| void | protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion) |
state : ClientState
이 속성은 클라이언트의 현재 상태를 저장합니다.
액세스 함수:
| QMqttClient::ClientState | state() const |
| void | setState(QMqttClient::ClientState state) |
Notifier 시그널:
| void | stateChanged(QMqttClient::ClientState state) |
username : QString
이 속성은 브로커에 연결할 때 사용하는 사용자 이름을 저장합니다.
액세스 함수:
| QString | username() const |
| void | setUsername(const QString &username) |
알림 신호:
| void | usernameChanged(QString username) |
willMessage : QByteArray
이 속성은 유언 메시지의 페이로드를 포함합니다.
액세스 함수:
| QByteArray | willMessage() const |
| void | setWillMessage(const QByteArray &willMessage) |
알림 신호:
| void | willMessageChanged(QByteArray willMessage) |
willQoS : quint8
이 속성은 윌 메시지(Will Message)의 전송 및 저장에 적용되는 QoS 수준을 나타냅니다.
액세스 기능:
| quint8 | willQoS() const |
| void | setWillQoS(quint8 willQoS) |
알림 신호:
| void | willQoSChanged(quint8 willQoS) |
willRetain : bool
이 속성은 향후 구독자가 수신할 수 있도록 브로커에 ‘Will Message’를 유지해야 하는지 여부를 지정합니다.
액세스 함수:
| bool | willRetain() const |
| void | setWillRetain(bool willRetain) |
알림 신호:
| void | willRetainChanged(bool willRetain) |
willTopic : QString
이 속성은 ‘Will’ 주제를 포함합니다.
액세스 함수:
| QString | willTopic() const |
| void | setWillTopic(const QString &willTopic) |
알림 신호:
| void | willTopicChanged(QString willTopic) |
멤버 함수 문서
[explicit] QMqttClient::QMqttClient(QObject *parent = nullptr)
지정된 parent 를 사용하여 새로운 MQTT 클라이언트 인스턴스를 생성합니다.
[override virtual noexcept] QMqttClient::~QMqttClient()
MQTT 클라이언트를 삭제합니다. MQTT 클라이언트가 아직 MQTT 브로커와 연결된 상태라면, 자동으로 연결이 끊어집니다.
참고: setTransport 로 전송 방식이 지정된경우 , 이 시점에서 해당 전송 방식이 유효해야 합니다.
void QMqttClient::authenticate(const QMqttAuthenticationProperties &prop)
브로커에 인증 요청을 보냅니다. ` prop `는 인증 요청을 처리하는 데 필요한 정보를 지정합니다.
이 함수는 QMqttClient::authenticationRequested 신호가 발신된 후에만 호출되어야 합니다.
참고: 확장 인증은 MQTT 5.0 표준의 일부이며, 클라이언트가 MQTT_5_0 를 ProtocolVersion 로 지정했을 때만 사용할 수 있습니다.
authenticationRequested() 및 authenticationFinished()도 참조하십시오 .
[signal] void QMqttClient::authenticationFinished(const QMqttAuthenticationProperties &p)
이 신호는 확장 인증이 완료된 후 전송됩니다. p 는 인증 과정에 대한 세부 정보를 제공합니다.
인증에 성공하면 QMqttClient::connected 가 전송됩니다.
참고: 확장 인증은 MQTT 5.0 표준의 일부이며, 클라이언트가 MQTT_5_0 을 ProtocolVersion 로 지정했을 때만 사용할 수 있습니다.
authenticationRequested() 및 authenticate()도 참조하십시오 .
[signal] void QMqttClient::authenticationRequested(const QMqttAuthenticationProperties &p)
이 신호는 클라이언트가 QMqttClient::connectToHost 또는 QMqttClient::connectToHostEncrypted 를 호출한 후, 연결이 수립되기 전에 전송됩니다. 확장 인증에서 브로커는 QMqttClient::authenticate 를 호출하여 제공해야 하는 추가 정보를 요청할 수 있습니다. p 는 브로커가 제공하는 속성을 명시합니다.
참고: 확장 인증은 MQTT 5.0 표준의 일부이며, 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정할 때만 사용할 수 있습니다.
authenticationFinished() 및 authenticate()도 참조하십시오 .
[signal] void QMqttClient::brokerSessionRestored()
이 신호는 클라이언트가 cleanSession 속성을 false 로 설정하고 브로커에 성공적으로 연결한 후, 브로커가 세션을 복원한 경우에 발생합니다.
클라이언트가 이전에 동일한 clientId 를 사용하여 연결한 적이 있다면 세션을 복원할 수 있습니다.
[invokable] void QMqttClient::connectToHost()
MQTT 브로커와의 연결을 시작합니다.
참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
void QMqttClient::connectToHostEncrypted(const QSslConfiguration &conf)
MQTT 브로커에 대한 암호화된 연결을 시작합니다.
conf 연결에 사용할 SSL 구성을 지정합니다.
[invokable, since 6.10] void QMqttClient::connectToHostWebSocket(QWebSocket *webSocket = nullptr)
웹소켓 전송 유형을 설정하고 MQTT 브로커와의 연결을 시작합니다. 기존 전송 유형은 대체됩니다. webSocket 가 지정되면 호스트명과 포트는 무시되며, 해당 웹소켓을 통해 연결이 이루어집니다. webSocket은 호출하는 코드가 소유하며, QMqttClient 객체의 수명 기간 동안 유효해야 합니다.
참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
이 함수는 Qt 6.10에서 도입되었습니다.
[invokable, since 6.10] void QMqttClient::connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr)
보안 웹소켓 전송 유형을 설정하고 MQTT 브로커와의 연결을 시작합니다. 기존 전송 유형은 대체됩니다. webSocket 가 지정된 경우, 호스트명과 포트는 무시되며 해당 웹소켓을 통해 연결이 이루어집니다. webSocket은 호출 코드가 소유하며, QMqttClient 객체의 수명 기간 동안 유효해야 합니다.
참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
이 함수는 Qt 6.10에서 도입되었습니다.
[signal] void QMqttClient::connected()
이 신호는 연결이 설정되었을 때 전송됩니다.
QMqttConnectionProperties QMqttClient::connectionProperties() const
클라이언트가 브로커에 요청한 연결 속성을 반환합니다.
참고: ` QMqttConnectionProperties `는 클라이언트가 ` ProtocolVersion`로 ` MQTT_5_0 `를 지정했을 때만 사용할 수 있습니다.
setConnectionProperties()도 참조하십시오 .
[invokable] void QMqttClient::disconnectFromHost()
MQTT 브로커와의 연결을 끊습니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
[signal] void QMqttClient::disconnected()
이 신호는 연결이 종료되었을 때 발생합니다. 연결은 disconnectFromHost()이 호출되거나 브로커가 연결을 끊을 때 종료될 수 있습니다.
QMqttLastWillProperties QMqttClient::lastWillProperties() const
마지막 유언의 속성을 반환합니다.
참고: ` QMqttLastWillProperties `는 클라이언트가 ` ProtocolVersion`로 ` MQTT_5_0 `를 지정한 경우에만 사용할 수 있습니다.
setLastWillProperties()도 참조하십시오 .
[signal] void QMqttClient::messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName())
이 신호는 새 메시지가 수신되었을 때 전송됩니다. 메시지의 범주는 ` topic `로 지정되며, 내용은 ` message`입니다.
[signal] void QMqttClient::messageSent(qint32 id)
publish() 함수를 통해 전송된 메시지가 브로커에 수신되었음을 나타냅니다. id 는 메시지 상태 추적을 돕기 위해 publish() 에서 반환되는 값과 동일합니다.
[signal] void QMqttClient::messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties)
이 신호는 id 로 식별되는 메시지의 상태가 변경될 때 발생합니다. s 는 메시지의 새로운 상태를 나타내며, properties 는 서버에서 제공하는 추가 속성을 나타냅니다.
[signal] void QMqttClient::pingResponseReceived()
이 신호는 브로커가 ` requestPing()` 호출이나 ` keepAlive()` 핑 메시지에 응답한 후, 연결이 여전히 유효한 상태에서 발생합니다.
[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)
지정된 topic 를 사용하여 브로커에 message 를 게시합니다. qos 는 메시지 전송에 필요한 QoS 수준을 지정합니다.
retain 가 true 로 설정된 경우, 메시지는 브로커에 남아 다른 클라이언트가 연결하여 메시지를 수신할 수 있게 됩니다.
메시지를 식별하는 데 내부적으로 사용되는 ID를 반환합니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하십시오.
[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)
지정된 properties 및 topic 를 사용하여 브로커에 message 를 게시합니다. qos 는 메시지 전송에 필요한 QoS 수준을 지정합니다.
retain 가 true 로 설정된 경우, 메시지는 브로커에 남아 다른 클라이언트가 연결하여 메시지를 수신할 수 있게 됩니다.
메시지를 식별하는 데 내부적으로 사용되는 ID를 반환합니다.
참고: properties 은 클라이언트가 ProtocolVersion 로 MQTT_5_0 를 지정한 경우에만 브로커로 전달됩니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하십시오.
bool QMqttClient::requestPing()
브로커에 핑 메시지를 전송하고 응답을 기다립니다.
연결이 활성 상태이고 ` autoKeepAlive `가 ` true`인 경우, 이 프로세스를 관리하는 것은 클라이언트의 책임이므로 이 함수를 호출하면 실패합니다.
requestPing() 를 수동으로 사용하려면, 연결이 활성화된 동안 keepAlive 간격마다 호출해야 합니다.
핑이 성공했는지 확인하려면 pingResponseReceived() 신호에 연결하십시오.
핑 요청을 보낼 수 있다면 true 를 반환합니다.
pingResponseReceived(), autoKeepAlive(), keepAlive()도 참조하십시오 .
QMqttServerConnectionProperties QMqttClient::serverConnectionProperties() const
브로커가 연결 시도 후 반환한 QMqttServerConnectionProperties 를 반환합니다.
이를 통해 QMqttClient::setConnectionProperties 로 설정된 클라이언트 측 연결 속성이 브로커에 의해 수락되었는지 확인할 수 있습니다. 또한, 연결 시도가 실패한 경우 연결 진단에 활용할 수 있습니다.
참고: QMqttServerConnectionProperties 은 클라이언트가 ProtocolVersion 에 MQTT_5_0 을 지정했을 때만 사용할 수 있습니다.
connectionProperties()도 참조하십시오 .
void QMqttClient::setConnectionProperties(const QMqttConnectionProperties &prop)
연결 속성을 ‘ prop ’로 설정합니다. ‘ QMqttConnectionProperties ’를 사용하여 서버에 특정 기능 세트를 사용하도록 요청할 수 있습니다. 연결 요청 후, ‘ QMqttClient::serverConnectionProperties ’를 호출하여 서버의 응답을 받을 수 있습니다.
참고: 연결속성은 MQTT 클라이언트가 Disconnected 상태일 때만 설정할 수 있습니다.
참고: QMqttConnectionProperties 는 클라이언트가 ProtocolVersion 로 MQTT_5_0 를 지정했을 때만 사용할 수 있습니다.
connectionProperties()도 참조하십시오 .
void QMqttClient::setLastWillProperties(const QMqttLastWillProperties &prop)
last will 속성을 ‘ prop ’로 설정합니다. ‘ QMqttLastWillProperties ’를 사용하면 브로커에 저장된 last will 메시지에 대한 추가 기능을 설정할 수 있습니다.
참고: 연결속성은 MQTT 클라이언트가 Disconnected 상태일 때만 설정할 수 있습니다.
참고: QMqttLastWillProperties 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정한 경우에만 사용할 수 있습니다.
참조: lastWillProperties().
void QMqttClient::setTransport(QIODevice *device, QMqttClient::TransportType transport)
트랜스포트를 ‘ device ’로 설정합니다. 트랜스포트는 소켓 유형이거나 ‘ QIODevice ’에서 파생된 유형일 수 있으며, ‘ transport ’로 지정됩니다.
참고: 전송방식은 MQTT 클라이언트가 Disconnected 상태일 때만 변경할 수 있습니다.
참고: 클라이언트에 사용자 정의 전송 방식을설정한다고 해서 연결 관리나 소유권에 대한 책임이 이전되는 것은 아닙니다. QMqttClient::connectToHost()를 호출하기 전에, QIODevice 기반 전송 방식의 경우 전송을 열어야 하며, 소켓 유형 전송 방식의 경우 연결이 완료되어 있어야 합니다.
transport()도 참조하십시오 .
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, quint8 qos = 0)
topic 에서 알림을 수신하기 위한 새로운 구독을 추가합니다. 매개변수 qos 는 보안 메시지를 수신할 QoS 수준을 지정합니다. 사용 가능한 QoS 수준에 대한 자세한 내용은 ‘서비스 품질(Quality of Service)’을 참조하십시오.
이 함수는 QMqttSubscription 에 대한 포인터를 반환합니다. 동일한 토픽에 두 번 구독한 경우, 반환 값은 동일한 구독 인스턴스를 가리킵니다. MQTT 클라이언트가 구독의 소유자입니다.
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0)
topic 에서 알림을 수신하기 위한 새로운 구독을 추가합니다. properties 매개변수는 브로커가 유효성을 검사할 추가 구독 속성을 지정합니다. qos 매개변수는 보안 메시지를 수신할 수준을 지정합니다. 사용 가능한 QoS 수준에 대한 자세한 내용은 ‘서비스 품질(Quality of Service)’을 참조하십시오.
이 함수는 QMqttSubscription 에 대한 포인터를 반환합니다. 동일한 토픽을 두 번 구독한 경우, 반환 값은 동일한 구독 인스턴스를 가리킵니다. MQTT 클라이언트는 해당 구독의 소유자입니다.
참고: properties 는 클라이언트가 ProtocolVersion 로 MQTT_5_0 를 지정했을 때만 브로커로 전달됩니다.
QIODevice *QMqttClient::transport() const
브로커와의 통신에 사용되는 전송 방식을 반환합니다.
setTransport()도 참조하십시오 .
void QMqttClient::unsubscribe(const QMqttTopicFilter &topic)
topic 의 구독을 해지합니다. subscribe()를 호출하여 생성된 모든 구독에 대해서는 알림이 전송되지 않습니다.
참고: 클라이언트가 구독을 취소하지 않은상태에서 브로커와의 연결을끊으면 , 브로커는 모든 메시지를 저장했다가 다음 재연결 시 해당 메시지를 게시합니다.
void QMqttClient::unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties)
topic 에서 구독을 취소합니다. subscribe()를 호출하여 등록한 구독에 대해서는 어떠한 알림도 전송되지 않습니다. properties 는 브로커에 전달할 추가 사용자 속성을 지정합니다.
참고: 클라이언트가 구독을 취소하지 않은상태에서 브로커와의 연결을끊으면 , 브로커는 모든 메시지를 저장했다가 다음 재연결 시 이를 게시합니다.
참고: properties 는 클라이언트가 ProtocolVersion 로 MQTT_5_0 를 지정했을 때만 브로커에 전달됩니다.
© 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.