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 の形式が不正です。これは長さに関連している可能性があります。 |
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 の間隔で自動的にサーバーにpingメッセージを送信します。
それ以外の場合は、ユーザーが接続の指定された間隔内で手動で `requestPing ` を呼び出す必要があります。その間隔内に ping が送信されなかった場合、サーバーは接続を切断します。
このプロパティのデフォルト値は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) |
Notifierシグナル:
| 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
このプロパティは、ブローカーに対して定期的なpingメッセージを送信する間隔を指定します。
ブローカーへの接続が確立されると、クライアントは、依然として到達可能であることを伝えるために、頻繁に更新情報を送信する必要があります。これらの更新情報の送信間隔は、このプロパティによって指定されます。
間隔は秒単位で指定します。
ブローカーが猶予期間内に応答しない場合、接続は切断されます。
アクセス関数:
| quint16 | keepAlive() const |
| void | setKeepAlive(quint16 keepAlive) |
Notifier シグナル:
| 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
このプロパティは、ウィルメッセージの送信および保存におけるQoSのレベルを保持します。
アクセス機能:
| quint8 | willQoS() const |
| void | setWillQoS(quint8 willQoS) |
通知信号:
| void | willQoSChanged(quint8 willQoS) |
willRetain : bool
このプロパティは、将来のサブスクライバーが受信できるよう、ブローカー上で「Will Message」を保持するかどうかを指定します。
アクセス関数:
| bool | willRetain() const |
| void | setWillRetain(bool willRetain) |
Notifierシグナル:
| 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)
WebSocketトランスポートタイプを設定し、MQTTブローカーへの接続を開始します。以前のトランスポートタイプは上書きされます。webSocket が指定された場合、ホスト名とポートは無視され、そのWebSocketを使用して接続が行われます。webSocketは呼び出し元のコードが所有しており、QMqttClient オブジェクトの存続期間中は有効でなければなりません。
注:この関数は 、メタオブジェクトシステムを介して、およびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
この関数は Qt 6.10 で導入されました。
[invokable, since 6.10] void QMqttClient::connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr)
セキュアなWebSocketトランスポートタイプを設定し、MQTTブローカーへの接続を開始します。以前のトランスポートタイプは上書きされます。webSocket が指定された場合、ホスト名とポートは無視され、その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
最後の「will」プロパティを返します。
注: 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()のpingメッセージに応答した後、接続が依然として有効な場合に発せられます。
[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()
ブローカーにpingメッセージを送信し、応答を待ちます。
接続がアクティブで、autoKeepAlive がtrue に設定されている場合、このプロセスの管理はクライアントの責任となるため、この関数の呼び出しは失敗します。
requestPing() を手動で使用する場合、接続がアクティブな限り、keepAlive の間隔ごとに毎回呼び出しを行う必要があります。
ping が成功したかどうかを確認するには、pingResponseReceived() シグナルに接続します。
ping リクエストを送信できた場合は、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 レベルの詳細については、「Quality of Service」を参照してください。
この関数は、QMqttSubscription へのポインタを返します。同じトピックを 2 回購読した場合、戻り値は同じサブスクリプションインスタンスを指します。MQTT クライアントがサブスクリプションの所有者となります。
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0)
topic での通知を受信するための新しいサブスクリプションを追加します。パラメータ `properties ` は、ブローカーによって検証される追加のサブスクリプションプロパティを指定します。パラメータ `qos ` は、セキュリティメッセージを受信するレベルを指定します。利用可能な QoS レベルの詳細については、「Quality of Service」を参照してください。
この関数は、QMqttSubscription へのポインタを返します。同じトピックに 2 回サブスクライブされた場合、戻り値は同じサブスクリプションインスタンスを指します。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.