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 } |
속성
|
|
공용 기능
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) |
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 서버에 대한 네트워크 연결을 만드는 프로그램 또는 디바이스입니다. 연결 요청에는 고유한 클라이언트 식별자가 포함되어야 합니다. 선택 사항으로 유언장 주제, 유언장 메시지, 사용자 이름 및 비밀번호를 포함할 수 있습니다.
연결이 생성되면 클라이언트는 다른 클라이언트가 수신할 만한 메시지를 보내고, 토픽에 대한 알림을 신청하고, 알림 요청을 삭제하기 위해 구독을 취소하고, 브로커와의 연결을 끊을 수 있습니다.
회원 유형 문서
enum QMqttClient::ClientError
이 열거형 유형은 클라이언트의 오류 상태를 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QMqttClient::NoError | 0 | 오류가 발생하지 않았습니다. |
QMqttClient::InvalidProtocolVersion | 1 | 브로커가 지정된 프로토콜 버전을 사용하는 연결을 수락하지 않습니다. |
QMqttClient::IdRejected | 2 | 클라이언트 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
이 열거형 유형은 클라이언트가 입력할 수 있는 상태를 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QMqttClient::Disconnected | 0 | 클라이언트가 브로커와 연결이 끊어졌습니다. |
QMqttClient::Connecting | 1 | 연결 요청이 이루어졌지만 브로커가 아직 연결을 승인하지 않았습니다. |
QMqttClient::Connected | 2 | 클라이언트가 브로커에 연결되었습니다. |
enum QMqttClient::ProtocolVersion
이 열거형은 브로커와 통신할 때 사용할 MQTT 표준의 프로토콜 버전을 지정합니다.
Constant | 값 | 설명 |
---|---|---|
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
이 열거 형은 브로커에 대한 연결을 인스턴스화하는 데 사용할 연결 방법을 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QMqttClient::IODevice | 0 | 전송은 QIODevice. |
QMqttClient::AbstractSocket | 1 | 전송은 QAbstractSocket 에 기반한 클래스를 사용합니다. |
QMqttClient::SecureSocket | 2 | 전송은 QSslSocket 에 기반한 클래스를 사용합니다. |
속성 문서
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를 지정하지 않으면 연결이 설정될 때 자동으로 생성됩니다.
액세스 기능:
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) |
알림 신호:
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
이 속성은 유언장 메시지 전송 및 저장을 위한 QoS 수준을 보유합니다.
액세스 기능:
quint8 | willQoS() const |
void | setWillQoS(quint8 willQoS) |
알림 신호:
void | willQoSChanged(quint8 willQoS) |
willRetain : bool
이 속성은 향후 가입자가 수신할 수 있도록 브로커에 유언 메시지를 보관할지 여부를 저장합니다.
액세스 함수:
bool | willRetain() const |
void | setWillRetain(bool willRetain) |
알림 신호:
void | willRetainChanged(bool willRetain) |
willTopic : QString
이 속성은 유언장 토픽을 보유합니다.
액세스 함수를 저장합니다:
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 브로커에서 아직 연결 해제되지 않은 경우 자동으로 연결이 해제됩니다.
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 구성을 지정합니다.
[signal]
void QMqttClient::connected()
이 신호는 연결이 설정되면 발신됩니다.
QMqttConnectionProperties QMqttClient::connectionProperties() const
클라이언트가 브로커에 요청한 연결 속성을 반환합니다.
참고: QMqttConnectionProperties 는 클라이언트가 MQTT_5_0 을 ProtocolVersion 로 지정한 경우에만 사용할 수 있습니다.
setConnectionProperties()도 참조하세요 .
[invokable]
void QMqttClient::disconnectFromHost()
MQTT 브로커와의 연결을 끊습니다.
참고: 이 함수는 메타객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.
[signal]
void QMqttClient::disconnected()
이 신호는 연결이 닫혔을 때 발생합니다. disconnectFromHost ()가 호출되거나 브로커가 연결을 끊을 때 연결이 닫힐 수 있습니다.
QMqttLastWillProperties QMqttClient::lastWillProperties() const
마지막 유언장 속성을 반환합니다.
참고: QMqttLastWillProperties 는 클라이언트가 MQTT_5_0 을 ProtocolVersion 로 지정한 경우에만 사용할 수 있습니다.
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 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정한 경우에만 브로커에 전달됩니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하세요.
bool QMqttClient::requestPing()
브로커에 핑 메시지를 보내고 응답을 기대합니다.
연결이 활성화되어 있고 autoKeepAlive 이 true
인 경우 클라이언트가 이 프로세스를 관리해야 하므로 이 함수를 호출하면 실패합니다.
requestPing()
을 수동으로 사용하려면 연결이 활성화되어 있는 동안 keepAlive 간격 내에 매번 호출해야 합니다.
핑이 성공했는지 확인하려면 pingResponseReceived() 신호에 연결합니다.
핑 요청을 보낼 수 있으면 true
을 반환합니다.
pingResponseReceived(), autoKeepAlive() 및 keepAlive()도 참조하세요 .
QMqttServerConnectionProperties QMqttClient::serverConnectionProperties() const
연결 시도 후 브로커가 반환한 QMqttServerConnectionProperties 을 반환합니다.
이는 QMqttClient::setConnectionProperties 에서 설정한 클라이언트 측 연결 속성이 브로커에 의해 수락되었는지 확인하는 데 사용할 수 있습니다. 또한 연결 시도가 실패한 경우 연결 진단에 사용할 수 있습니다.
참고: QMqttServerConnectionProperties 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정한 경우에만 사용할 수 있습니다.
connectionProperties()도 참조하세요 .
void QMqttClient::setConnectionProperties(const QMqttConnectionProperties &prop)
연결 속성을 prop 로 설정합니다. QMqttConnectionProperties 을 사용하여 서버에 특정 기능 집합을 사용하도록 요청할 수 있습니다. 연결 요청 후 QMqttClient::serverConnectionProperties 을 호출하여 서버 응답을 얻을 수 있습니다.
참고: 연결 속성은 MQTT 클라이언트가 Disconnected 상태인 경우에만 설정할 수 있습니다.
참고: QMqttConnectionProperties 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정한 경우에만 사용할 수 있습니다.
connectionProperties()도 참조하세요 .
void QMqttClient::setLastWillProperties(const QMqttLastWillProperties &prop)
마지막 유언장 속성을 prop 로 설정합니다. QMqttLastWillProperties 을 사용하면 브로커에 저장된 마지막 유언장 메시지에 대한 추가 기능을 설정할 수 있습니다.
참고: 연결 속성은 MQTT 클라이언트가 Disconnected 상태인 경우에만 설정할 수 있습니다.
참고: QMqttLastWillProperties 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정한 경우에만 사용할 수 있습니다.
lastWillProperties()도 참조하세요 .
void QMqttClient::setTransport(QIODevice *device, QMqttClient::TransportType transport)
전송을 device 로 설정합니다. 전송은 소켓 유형이거나 QIODevice 에서 파생될 수 있으며 transport 으로 지정됩니다.
참고: MQTT 클라이언트가 Disconnected 상태인 경우에만 전송을 교환할 수 있습니다.
참고: 클라이언트에 대한 사용자 지정 전송을 설정해도 연결 관리에 대한 책임은 넘겨지지 않습니다. QIODevice 기반 전송의 경우 전송을 열거나 소켓 유형 전송의 경우 QMqttClient::connectToHost()을 호출하기 전에 전송을 연결해야 합니다.
transport()도 참조하세요 .
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, quint8 qos = 0)
topic 에서 알림을 받도록 새 구독을 추가합니다. qos 매개변수는 보안 메시지가 수신되는 수준을 지정합니다. 사용 가능한 QoS 수준에 대한 자세한 내용은 서비스 품질을 참조하세요.
이 함수는 QMqttSubscription 에 대한 포인터를 반환합니다. 동일한 주제를 두 번 구독하는 경우 반환 값은 동일한 구독 인스턴스를 가리킵니다. MQTT 클라이언트가 구독의 소유자입니다.
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0)
topic 에서 알림을 수신할 새 구독을 추가합니다. properties 매개변수는 브로커에서 유효성을 검사할 추가 구독 속성을 지정합니다. qos 매개변수는 보안 메시지가 수신되는 수준을 지정합니다. 사용 가능한 QoS 수준에 대한 자세한 내용은 서비스 품질을 참조하세요.
이 함수는 QMqttSubscription 에 대한 포인터를 반환합니다. 동일한 토픽이 두 번 구독된 경우 반환 값은 동일한 구독 인스턴스를 가리킵니다. MQTT 클라이언트가 구독의 소유자입니다.
참고: properties 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정하는 경우에만 브로커에 전달됩니다.
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 은 클라이언트가 MQTT_5_0 을 ProtocolVersion 으로 지정한 경우에만 브로커에 전달됩니다.
© 2025 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.