- class QMqttClient#
The
QMqttClient
class represents the central access communicating with an MQTT broker. More…Synopsis#
Properties#
autoKeepAliveᅟ
- This property holds whether the client will automatically manage keep alive messages to the servercleanSessionᅟ
- This property holds the state after connecting to a brokerclientIdᅟ
- This property holds the client’s identifier valueerrorᅟ
- Specifies the current error of the clienthostnameᅟ
- This property holds the hostname of the MQTT broker to connect tokeepAliveᅟ
- This property holds the interval at which regular ping messages are sent to the brokerpasswordᅟ
- This property holds the password for connecting to a brokerportᅟ
- This property holds the port to connect to the MQTT brokerprotocolVersionᅟ
- This property holds the MQTT standard version to use for connectionsstateᅟ
- This property holds the current state of the clientusernameᅟ
- This property holds the user name for connecting to a brokerwillMessageᅟ
- This property holds the payload of a Will MessagewillQoSᅟ
- This property holds the level of QoS for sending and storing the Will MessagewillRetainᅟ
- This property holds whether the Will Message should be retained on the broker for future subscribers to receivewillTopicᅟ
- This property holds the Will Topic
Methods#
def
__init__()
def
authenticate()
def
autoKeepAlive()
def
cleanSession()
def
clientId()
def
connectToHost()
def
error()
def
hostname()
def
keepAlive()
def
password()
def
port()
def
publish()
def
requestPing()
def
setTransport()
def
state()
def
subscribe()
def
transport()
def
unsubscribe()
def
username()
def
willMessage()
def
willQoS()
def
willRetain()
def
willTopic()
Slots#
def
setClientId()
def
setError()
def
setHostname()
def
setKeepAlive()
def
setPassword()
def
setPort()
def
setState()
def
setUsername()
def
setWillMessage()
def
setWillQoS()
def
setWillRetain()
def
setWillTopic()
Signals#
def
connected()
def
disconnected()
def
errorChanged()
def
messageSent()
def
portChanged()
def
stateChanged()
def
willQoSChanged()
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 thekeepAlive
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:
Signal
errorChanged()
- 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:
Signal
portChanged()
- 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:
Signal
stateChanged()
- 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:
Creates a new MQTT client instance with the specified
parent
.- authenticate(prop)#
- Parameters:
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
asProtocolVersion
.- authenticationFinished(p)#
- Parameters:
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
asProtocolVersion
.See also
- authenticationRequested(p)#
- Parameters:
This signal is emitted after a client invoked
connectToHost
orconnectToHostEncrypted
and before the connection is established. In extended authentication, a broker might request additional details which need to be provided by invokingauthenticate
.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
asProtocolVersion
.See also
- autoKeepAlive()#
- Return type:
bool
See also
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 tofalse
, 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
See also
Getter of property
cleanSessionᅟ
.- cleanSessionChanged(cleanSession)#
- Parameters:
cleanSession – bool
Notification signal of property
cleanSessionᅟ
.- clientId()#
- Return type:
str
See also
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:
conf –
QSslConfiguration
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:
Returns the connection properties the client requests to the broker.
Note
QMqttConnectionProperties
can only be used when the client specifiesMQTT_5_0
asProtocolVersion
.See also
- 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:
See also
Getter of property
errorᅟ
.- errorChanged(error)#
- Parameters:
error –
ClientError
Notification signal of property
errorᅟ
.- hostname()#
- Return type:
str
See also
Getter of property
hostnameᅟ
.- hostnameChanged(hostname)#
- Parameters:
hostname – str
Notification signal of property
hostnameᅟ
.- keepAlive()#
- Return type:
int
See also
Getter of property
keepAliveᅟ
.- keepAliveChanged(keepAlive)#
- Parameters:
keepAlive – int
Notification signal of property
keepAliveᅟ
.- lastWillProperties()#
- Return type:
Returns the last will properties.
Note
QMqttLastWillProperties
can only be used when the client specifiesMQTT_5_0
asProtocolVersion
.See also
- messageReceived(message[, topic=QMqttTopicName()])#
- Parameters:
message –
QByteArray
topic –
QMqttTopicName
This signal is emitted when a new message has been received. The category of the message is specified by
topic
with the content beingmessage
.- messageSent(id)#
- Parameters:
id – int
Indicates that a message that was sent via the
publish()
function has been received by the broker. Theid
is the same as returned bypublish()
to help tracking the status of the message.- messageStatusChanged(id, s, properties)#
- Parameters:
id – int
s –
MessageStatus
properties –
QMqttMessageStatusProperties
This signal is emitted when the status for the message identified by
id
changes.s
specifies the new status of the message, andproperties
specify additional properties provided by the server.- password()#
- Return type:
str
See also
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 akeepAlive()
ping message, and the connection is still valid.Getter of property
portᅟ
.- portChanged(port)#
- Parameters:
port – int
Notification signal of property
portᅟ
.- protocolVersion()#
- Return type:
See also
Getter of property
protocolVersionᅟ
.- protocolVersionChanged(protocolVersion)#
- Parameters:
protocolVersion –
ProtocolVersion
Notification signal of property
protocolVersionᅟ
.- publish(topic[, message=QByteArray()[, qos=0[, retain=false]]])#
- Parameters:
topic –
QMqttTopicName
message –
QByteArray
qos – int
retain – bool
- Return type:
int
Publishes a
message
to the broker with the specifiedtopic
.qos
specifies the QoS level required for transferring the message.If
retain
is set totrue
, 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:
topic –
QMqttTopicName
properties –
QMqttPublishProperties
message –
QByteArray
qos – int
retain – bool
- Return type:
int
Publishes a
message
to the broker with the specifiedproperties
andtopic
.qos
specifies the QoS level required for transferring the message.If
retain
is set totrue
, 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 specifiesMQTT_5_0
asProtocolVersion
.- requestPing()#
- Return type:
bool
Sends a ping message to the broker and expects a reply.
If the connection is active and
autoKeepAlive
istrue
, then calling this function will fail as the client is responsible for managing this process.Using
requestPing()
manually requires a call every time within thekeepAlive
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:
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 specifiesMQTT_5_0
asProtocolVersion
.See also
- setAutoKeepAlive(autoKeepAlive)#
- Parameters:
autoKeepAlive – bool
See also
Setter of property
autoKeepAliveᅟ
.- setCleanSession(cleanSession)#
- Parameters:
cleanSession – bool
See also
Setter of property
cleanSessionᅟ
.- setClientId(clientId)#
- Parameters:
clientId – str
See also
Setter of property
clientIdᅟ
.- setConnectionProperties(prop)#
- Parameters:
prop –
QMqttConnectionProperties
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 callingserverConnectionProperties
.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 specifiesMQTT_5_0
asProtocolVersion
.See also
- setError(error)#
- Parameters:
error –
ClientError
See also
Setter of property
errorᅟ
.- setHostname(hostname)#
- Parameters:
hostname – str
See also
Setter of property
hostnameᅟ
.- setKeepAlive(keepAlive)#
- Parameters:
keepAlive – int
See also
Setter of property
keepAliveᅟ
.- setLastWillProperties(prop)#
- Parameters:
prop –
QMqttLastWillProperties
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 specifiesMQTT_5_0
asProtocolVersion
.See also
- setPassword(password)#
- Parameters:
password – str
See also
Setter of property
passwordᅟ
.Setter of property
portᅟ
.- setProtocolVersion(protocolVersion)#
- Parameters:
protocolVersion –
ProtocolVersion
See also
Setter of property
protocolVersionᅟ
.- setState(state)#
- Parameters:
state –
ClientState
See also
Setter of property
stateᅟ
.- setTransport(device, transport)#
- Parameters:
device –
QIODevice
transport –
TransportType
Sets the transport to
device
. A transport can be either a socket type or derived from QIODevice and is specified bytransport
.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
- setUsername(username)#
- Parameters:
username – str
See also
Setter of property
usernameᅟ
.- setWillMessage(willMessage)#
- Parameters:
willMessage –
QByteArray
See also
Setter of property
willMessageᅟ
.Setter of property
willQoSᅟ
.- setWillRetain(willRetain)#
- Parameters:
willRetain – bool
See also
Setter of property
willRetainᅟ
.- setWillTopic(willTopic)#
- Parameters:
willTopic – str
See also
Setter of property
willTopicᅟ
.- state()#
- Return type:
See also
Getter of property
stateᅟ
.- stateChanged(state)#
- Parameters:
state –
ClientState
Notification signal of property
stateᅟ
.- subscribe(topic, properties[, qos=0])#
- Parameters:
topic –
QMqttTopicFilter
properties –
QMqttSubscriptionProperties
qos – int
- Return type:
Adds a new subscription to receive notifications on
topic
. The parameterproperties
specifies additional subscription properties to be validated by the broker. The parameterqos
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 specifiesMQTT_5_0
asProtocolVersion
.- subscribe(topic[, qos=0])
- Parameters:
topic –
QMqttTopicFilter
qos – int
- Return type:
Adds a new subscription to receive notifications on
topic
. The parameterqos
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.Returns the transport used for communication with the broker.
See also
- unsubscribe(topic)#
- Parameters:
topic –
QMqttTopicFilter
Unsubscribes from
topic
. No notifications will be sent to any of the subscriptions made by callingsubscribe()
.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:
topic –
QMqttTopicFilter
properties –
QMqttUnsubscriptionProperties
Unsubscribes from
topic
. No notifications will be sent to any of the subscriptions made by callingsubscribe()
.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 specifiesMQTT_5_0
asProtocolVersion
.- username()#
- Return type:
str
See also
Getter of property
usernameᅟ
.- usernameChanged(username)#
- Parameters:
username – str
Notification signal of property
usernameᅟ
.- willMessage()#
- Return type:
See also
Getter of property
willMessageᅟ
.- willMessageChanged(willMessage)#
- Parameters:
willMessage –
QByteArray
Notification signal of property
willMessageᅟ
.- willQoS()#
- Return type:
int
See also
Getter of property
willQoSᅟ
.- willQoSChanged(willQoS)#
- Parameters:
willQoS – int
Notification signal of property
willQoSᅟ
.- willRetain()#
- Return type:
bool
See also
Getter of property
willRetainᅟ
.- willRetainChanged(willRetain)#
- Parameters:
willRetain – bool
Notification signal of property
willRetainᅟ
.- willTopic()#
- Return type:
str
See also
Getter of property
willTopicᅟ
.- willTopicChanged(willTopic)#
- Parameters:
willTopic – str
Notification signal of property
willTopicᅟ
.