class QMqttClient#

The QMqttClient class represents the central access communicating with an MQTT broker. More

Inheritance diagram of PySide6.QtMqtt.QMqttClient

Synopsis#

Properties#

  • autoKeepAliveᅟ - This property holds whether the client will automatically manage keep alive messages to the server

  • cleanSessionᅟ - This property holds the state after connecting to a broker

  • clientIdᅟ - This property holds the client’s identifier value

  • errorᅟ - Specifies the current error of the client

  • hostnameᅟ - This property holds the hostname of the MQTT broker to connect to

  • keepAliveᅟ - This property holds the interval at which regular ping messages are sent to the broker

  • passwordᅟ - This property holds the password for connecting to a broker

  • portᅟ - This property holds the port to connect to the MQTT broker

  • protocolVersionᅟ - This property holds the MQTT standard version to use for connections

  • stateᅟ - This property holds the current state of the client

  • usernameᅟ - This property holds the user name for connecting to a broker

  • willMessageᅟ - This property holds the payload of a Will Message

  • willQoSᅟ - This property holds the level of QoS for sending and storing the Will Message

  • willRetainᅟ - This property holds whether the Will Message should be retained on the broker for future subscribers to receive

  • willTopicᅟ - This property holds the Will Topic

Methods#

Slots#

Signals#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description#

An MQTT client is a program or device that uses MQTT to create a network connection to an MQTT server, also called a broker. The connection request must contain a unique client identifier. Optionally, it can contain a Will Topic, Will Message, user name, and password.

Once a connection is created, a client can send messages that other clients might be interested in receiving, subscribe to request notifications on topics, unsubscribe to remove a request for notifications, and disconnect from the broker.

class TransportType#

This enum type specifies the connection method to be used to instantiate a connection to a broker.

Constant

Description

QMqttClient.IODevice

The transport uses a class based on a QIODevice.

QMqttClient.AbstractSocket

The transport uses a class based on a QAbstractSocket.

QMqttClient.SecureSocket

The transport uses a class based on a QSslSocket.

class ClientState#

This enum type specifies the states a client can enter.

Constant

Description

QMqttClient.Disconnected

The client is disconnected from the broker.

QMqttClient.Connecting

A connection request has been made, but the broker has not approved the connection yet.

QMqttClient.Connected

The client is connected to the broker.

class ClientError#

This enum type specifies the error state of a client.

Constant

Description

QMqttClient.NoError

No error occurred.

QMqttClient.InvalidProtocolVersion

The broker does not accept a connection using the specified protocol version.

QMqttClient.IdRejected

The client ID is malformed. This might be related to its length.

QMqttClient.ServerUnavailable

The network connection has been established, but the service is unavailable on the broker side.

QMqttClient.BadUsernameOrPassword

The data in the username or password is malformed.

QMqttClient.NotAuthorized

The client is not authorized to connect.

QMqttClient.TransportInvalid

The underlying transport caused an error. For example, the connection might have been interrupted unexpectedly.

QMqttClient.ProtocolViolation

The client encountered a protocol violation, and therefore closed the connection.

QMqttClient.UnknownError

An unknown error occurred.

QMqttClient.Mqtt5SpecificError

The error is related to MQTT protocol level 5. A reason code might provide more details.

class ProtocolVersion#

This enum specifies the protocol version of the MQTT standard to use during communication with a broker.

Constant

Description

QMqttClient.MQTT_3_1

MQTT Standard 3.1

QMqttClient.MQTT_3_1_1

MQTT Standard 3.1.1, publicly referred to as version 4

QMqttClient.MQTT_5_0

MQTT Standard 5.0

Note

Properties can be used directly when from __feature__ import true_property is used or via accessor functions otherwise.

property autoKeepAliveᅟ: bool#

This property holds This property holds whether the client will automatically manage keep alive messages to the server..

If this property is true, then the client will automatically send a ping message to the server at the keepAlive interval.

Otherwise, a user will have to manually invoke requestPing within the specified interval of the connection. If no ping has been sent within the interval, the server will disconnect.

The default of this property is true.

Access functions:
property cleanSessionᅟ: bool#

This property holds This property holds the state after connecting to a broker..

Access functions:
property clientIdᅟ: str#

This property holds This property holds the client’s identifier value..

Each client needs to have a unique ID to be able to connect to an MQTT broker. If no client ID is specified by the user, one will be generated automatically when a connection is established.

Access functions:
property errorᅟ: QMqttClient.ClientError#

This property Specifies the current error of the client..

Access functions:
property hostnameᅟ: str#

This property holds This property holds the hostname of the MQTT broker to connect to..

If no transport is specified via setTransport() , the client will instantiate a socket connection to the specified hostname itself.

Access functions:
property keepAliveᅟ: int#

This property holds This property holds the interval at which regular ping messages are sent to the broker..

Once a connection to a broker is established, the client needs to send frequent updates to propagate it can still be reached. The interval between those updates is specified by this property.

The interval is specified in seconds.

If the broker does not respond within a grace period the connection will be closed.

Access functions:
property passwordᅟ: str#

This property holds This property holds the password for connecting to a broker..

Access functions:
property portᅟ: int#

This property holds This property holds the port to connect to the MQTT broker..

If no transport is specified via setTransport() , the client will instantiate a socket connection to a host with this port number.

Access functions:
property protocolVersionᅟ: QMqttClient.ProtocolVersion#

This property holds This property holds the MQTT standard version to use for connections..

Specifies the version of the standard the client uses for connecting to a broker. Valid values are:

  • 3: MQTT standard version 3.1.

  • 4: MQTT standard version 3.1.1, often referred to MQTT 4.

Access functions:
property stateᅟ: QMqttClient.ClientState#

This property holds This property holds the current state of the client..

Access functions:
property usernameᅟ: str#

This property holds This property holds the user name for connecting to a broker..

Access functions:
property willMessageᅟ: QByteArray#

This property holds This property holds the payload of a Will Message..

Access functions:
property willQoSᅟ: int#

This property holds This property holds the level of QoS for sending and storing the Will Message..

Access functions:
property willRetainᅟ: bool#

This property holds This property holds whether the Will Message should be retained on the broker for future subscribers to receive..

Access functions:
property willTopicᅟ: str#

This property holds This property holds the Will Topic..

Access functions:
__init__([parent=None])#
Parameters:

parentQObject

Creates a new MQTT client instance with the specified parent.

authenticate(prop)#
Parameters:

propQMqttAuthenticationProperties

Sends an authentication request to the broker. prop specifies the required information to fulfill the authentication request.

This function should only be called after a authenticationRequested signal has been emitted.

Note

Extended authentication is part of the MQTT 5.0 standard and can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

authenticationFinished(p)#
Parameters:

pQMqttAuthenticationProperties

This signal is emitted after extended authentication has finished. p specifies available details on the authentication process.

After successful authentication connected is emitted.

Note

Extended authentication is part of the MQTT 5.0 standard and can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

authenticationRequested(p)#
Parameters:

pQMqttAuthenticationProperties

This signal is emitted after a client invoked connectToHost or connectToHostEncrypted and before the connection is established. In extended authentication, a broker might request additional details which need to be provided by invoking authenticate . p specifies properties provided by the broker.

Note

Extended authentication is part of the MQTT 5.0 standard and can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

autoKeepAlive()#
Return type:

bool

Getter of property autoKeepAliveᅟ .

autoKeepAliveChanged(autoKeepAlive)#
Parameters:

autoKeepAlive – bool

Notification signal of property autoKeepAliveᅟ .

brokerSessionRestored()#

This signal is emitted after a client has successfully connected to a broker with the cleanSession property set to false, and the broker has restored the session.

Sessions can be restored if a client has connected previously using the same clientId .

cleanSession()#
Return type:

bool

Getter of property cleanSessionᅟ .

cleanSessionChanged(cleanSession)#
Parameters:

cleanSession – bool

Notification signal of property cleanSessionᅟ .

clientId()#
Return type:

str

See also

setClientId()

Getter of property clientIdᅟ .

clientIdChanged(clientId)#
Parameters:

clientId – str

Notification signal of property clientIdᅟ .

connectToHost()#

Initiates a connection to the MQTT broker.

connectToHostEncrypted(conf)#
Parameters:

confQSslConfiguration

Initiates an encrypted connection to the MQTT broker.

conf specifies the SSL configuration to be used for the connection

connected()#

This signal is emitted when a connection has been established.

connectionProperties()#
Return type:

QMqttConnectionProperties

Returns the connection properties the client requests to the broker.

Note

QMqttConnectionProperties can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

disconnectFromHost()#

Disconnects from the MQTT broker.

disconnected()#

This signal is emitted when a connection has been closed. A connection may be closed when disconnectFromHost() is called or when the broker disconnects.

error()#
Return type:

ClientError

See also

setError()

Getter of property errorᅟ .

errorChanged(error)#
Parameters:

errorClientError

Notification signal of property errorᅟ .

hostname()#
Return type:

str

See also

setHostname()

Getter of property hostnameᅟ .

hostnameChanged(hostname)#
Parameters:

hostname – str

Notification signal of property hostnameᅟ .

keepAlive()#
Return type:

int

See also

setKeepAlive()

Getter of property keepAliveᅟ .

keepAliveChanged(keepAlive)#
Parameters:

keepAlive – int

Notification signal of property keepAliveᅟ .

lastWillProperties()#
Return type:

QMqttLastWillProperties

Returns the last will properties.

Note

QMqttLastWillProperties can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

messageReceived(message[, topic=QMqttTopicName()])#
Parameters:

This signal is emitted when a new message has been received. The category of the message is specified by topic with the content being message.

messageSent(id)#
Parameters:

id – int

Indicates that a message that was sent via the publish() function has been received by the broker. The id is the same as returned by publish() to help tracking the status of the message.

messageStatusChanged(id, s, properties)#
Parameters:

This signal is emitted when the status for the message identified by id changes. s specifies the new status of the message, and properties specify additional properties provided by the server.

password()#
Return type:

str

See also

setPassword()

Getter of property passwordᅟ .

passwordChanged(password)#
Parameters:

password – str

Notification signal of property passwordᅟ .

pingResponseReceived()#

This signal is emitted after the broker responds to a requestPing() call or a keepAlive() ping message, and the connection is still valid.

port()#
Return type:

int

See also

setPort()

Getter of property portᅟ .

portChanged(port)#
Parameters:

port – int

Notification signal of property portᅟ .

protocolVersion()#
Return type:

ProtocolVersion

Getter of property protocolVersionᅟ .

protocolVersionChanged(protocolVersion)#
Parameters:

protocolVersionProtocolVersion

Notification signal of property protocolVersionᅟ .

publish(topic[, message=QByteArray()[, qos=0[, retain=false]]])#
Parameters:
Return type:

int

Publishes a message to the broker with the specified topic. qos specifies the QoS level required for transferring the message.

If retain is set to true, the message will stay on the broker for other clients to connect and receive the message.

Returns an ID that is used internally to identify the message.

publish(topic, properties[, message=QByteArray()[, qos=0[, retain=false]]])
Parameters:
Return type:

int

Publishes a message to the broker with the specified properties and topic. qos specifies the QoS level required for transferring the message.

If retain is set to true, the message will stay on the broker for other clients to connect and receive the message.

Returns an ID that is used internally to identify the message.

Note

properties will only be passed to the broker when the client specifies MQTT_5_0 as ProtocolVersion .

requestPing()#
Return type:

bool

Sends a ping message to the broker and expects a reply.

If the connection is active and autoKeepAlive is true, then calling this function will fail as the client is responsible for managing this process.

Using requestPing() manually requires a call every time within the keepAlive interval as long as the connection is active.

To check whether the ping is successful, connect to the pingResponseReceived() signal.

Returns true if the ping request could be sent.

serverConnectionProperties()#
Return type:

QMqttServerConnectionProperties

Returns the QMqttServerConnectionProperties the broker returned after a connection attempt.

This can be used to verify that client side connection properties set by setConnectionProperties have been accepted by the broker. Also, in case of a failed connection attempt, it can be used for connection diagnostics.

Note

QMqttServerConnectionProperties can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

setAutoKeepAlive(autoKeepAlive)#
Parameters:

autoKeepAlive – bool

See also

autoKeepAlive()

Setter of property autoKeepAliveᅟ .

setCleanSession(cleanSession)#
Parameters:

cleanSession – bool

See also

cleanSession()

Setter of property cleanSessionᅟ .

setClientId(clientId)#
Parameters:

clientId – str

See also

clientId()

Setter of property clientIdᅟ .

setConnectionProperties(prop)#
Parameters:

propQMqttConnectionProperties

Sets the connection properties to prop. QMqttConnectionProperties can be used to ask the server to use a specific feature set. After a connection request the server response can be obtained by calling serverConnectionProperties .

Note

The connection properties can only be set if the MQTT client is in the Disconnected state.

Note

QMqttConnectionProperties can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

setError(error)#
Parameters:

errorClientError

See also

error()

Setter of property errorᅟ .

setHostname(hostname)#
Parameters:

hostname – str

See also

hostname()

Setter of property hostnameᅟ .

setKeepAlive(keepAlive)#
Parameters:

keepAlive – int

See also

keepAlive()

Setter of property keepAliveᅟ .

setLastWillProperties(prop)#
Parameters:

propQMqttLastWillProperties

Sets the last will properties to prop. QMqttLastWillProperties allows to set additional features for the last will message stored at the broker.

Note

The connection properties can only be set if the MQTT client is in the Disconnected state.

Note

QMqttLastWillProperties can only be used when the client specifies MQTT_5_0 as ProtocolVersion .

setPassword(password)#
Parameters:

password – str

See also

password()

Setter of property passwordᅟ .

setPort(port)#
Parameters:

port – int

See also

port()

Setter of property portᅟ .

setProtocolVersion(protocolVersion)#
Parameters:

protocolVersionProtocolVersion

Setter of property protocolVersionᅟ .

setState(state)#
Parameters:

stateClientState

See also

state()

Setter of property stateᅟ .

setTransport(device, transport)#
Parameters:

Sets the transport to device. A transport can be either a socket type or derived from QIODevice and is specified by transport.

Note

The transport can only be exchanged if the MQTT client is in the Disconnected state.

Note

Setting a custom transport for a client does not pass over responsibility on connection management. The transport has to be opened for QIODevice based transports or connected for socket type transports before calling connectToHost() .

See also

transport()

setUsername(username)#
Parameters:

username – str

See also

username()

Setter of property usernameᅟ .

setWillMessage(willMessage)#
Parameters:

willMessageQByteArray

See also

willMessage()

Setter of property willMessageᅟ .

setWillQoS(willQoS)#
Parameters:

willQoS – int

See also

willQoS()

Setter of property willQoSᅟ .

setWillRetain(willRetain)#
Parameters:

willRetain – bool

See also

willRetain()

Setter of property willRetainᅟ .

setWillTopic(willTopic)#
Parameters:

willTopic – str

See also

willTopic()

Setter of property willTopicᅟ .

state()#
Return type:

ClientState

See also

setState()

Getter of property stateᅟ .

stateChanged(state)#
Parameters:

stateClientState

Notification signal of property stateᅟ .

subscribe(topic, properties[, qos=0])#
Parameters:
Return type:

QMqttSubscription

Adds a new subscription to receive notifications on topic. The parameter properties specifies additional subscription properties to be validated by the broker. The parameter qos specifies the level at which security messages are received. For more information about the available QoS levels, see Quality of Service .

This function returns a pointer to a QMqttSubscription . If the same topic is subscribed twice, the return value points to the same subscription instance. The MQTT client is the owner of the subscription.

Note

properties will only be passed to the broker when the client specifies MQTT_5_0 as ProtocolVersion .

subscribe(topic[, qos=0])
Parameters:
Return type:

QMqttSubscription

Adds a new subscription to receive notifications on topic. The parameter qos specifies the level at which security messages are received. For more information about the available QoS levels, see Quality of Service .

This function returns a pointer to a QMqttSubscription . If the same topic is subscribed twice, the return value points to the same subscription instance. The MQTT client is the owner of the subscription.

transport()#
Return type:

QIODevice

Returns the transport used for communication with the broker.

See also

setTransport()

unsubscribe(topic)#
Parameters:

topicQMqttTopicFilter

Unsubscribes from topic. No notifications will be sent to any of the subscriptions made by calling subscribe() .

Note

If a client disconnects from a broker without unsubscribing, the broker will store all messages and publish them on the next reconnect.

unsubscribe(topic, properties)
Parameters:

Unsubscribes from topic. No notifications will be sent to any of the subscriptions made by calling subscribe() . properties specifies additional user properties to be passed to the broker.

Note

If a client disconnects from a broker without unsubscribing, the broker will store all messages and publish them on the next reconnect.

Note

properties will only be passed to the broker when the client specifies MQTT_5_0 as ProtocolVersion .

username()#
Return type:

str

See also

setUsername()

Getter of property usernameᅟ .

usernameChanged(username)#
Parameters:

username – str

Notification signal of property usernameᅟ .

willMessage()#
Return type:

QByteArray

See also

setWillMessage()

Getter of property willMessageᅟ .

willMessageChanged(willMessage)#
Parameters:

willMessageQByteArray

Notification signal of property willMessageᅟ .

willQoS()#
Return type:

int

See also

setWillQoS()

Getter of property willQoSᅟ .

willQoSChanged(willQoS)#
Parameters:

willQoS – int

Notification signal of property willQoSᅟ .

willRetain()#
Return type:

bool

See also

setWillRetain()

Getter of property willRetainᅟ .

willRetainChanged(willRetain)#
Parameters:

willRetain – bool

Notification signal of property willRetainᅟ .

willTopic()#
Return type:

str

See also

setWillTopic()

Getter of property willTopicᅟ .

willTopicChanged(willTopic)#
Parameters:

willTopic – str

Notification signal of property willTopicᅟ .