#include <MqttClient.h>
Public Member Functions | |
MqttClient (bool withDefaultPayloadParser=true, bool autoDestruct=false) | |
~MqttClient () | |
void | setKeepAlive (uint16_t seconds) |
Sets keep-alive time. That information is sent during connection to the server. More... | |
void | setPingRepeatTime (unsigned seconds) |
bool | setWill (const String &topic, const String &message, uint8_t flags=0) |
bool | connect (const Url &url, const String &uniqueClientName) |
Connect to a MQTT server. More... | |
bool | publish (const String &topic, const String &message, uint8_t flags=0) |
bool | publish (const String &topic, IDataSourceStream *stream, uint8_t flags=0) |
bool | subscribe (const String &topic) |
bool | unsubscribe (const String &topic) |
void | setEventHandler (mqtt_type_t type, MqttDelegate handler) |
void | setPayloadParser (MqttPayloadParser payloadParser=nullptr) |
Sets or clears a payload parser (for PUBLISH messages from the server to us) More... | |
void | setConnectedHandler (MqttDelegate handler) |
Sets a handler to be called after successful MQTT connection. More... | |
void | setPublishedHandler (MqttDelegate handler) |
Sets a handler to be called after receiving confirmation from the server for a published message from the client. More... | |
void | setMessageHandler (MqttDelegate handler) |
Sets a handler to be called after receiving a PUBLISH message from the server. More... | |
void | setDisconnectHandler (TcpClientCompleteDelegate handler) |
Sets a handler to be called on disconnect from the server. More... | |
bool | setWill (const String &topic, const String &message, int QoS, bool retained=false) |
bool | publishWithQoS (const String &topic, const String &message, int QoS, bool retained=false, MqttMessageDeliveredCallback onDelivery=nullptr) |
void | setCallback (MqttStringSubscriptionCallback subscriptionCallback=nullptr) |
Provide a function to be called when a message is received from the broker. More... | |
Protected Member Functions | |
void | onReadyToSendData (TcpConnectionEvent sourceEvent) override |
void | onFinished (TcpClientState finishState) override |
bool | connect (const String &server, int port, bool useSsl=false) override |
bool | connect (IpAddress addr, uint16_t port, bool useSsl=false) override |
void | close () override |
void | setReceiveDelegate (TcpClientDataDelegate receiveCb=nullptr) |
Set or clear the callback for received data. More... | |
void | setCompleteDelegate (TcpClientCompleteDelegate completeCb=nullptr) |
Set or clear the callback for connection close. More... | |
bool | send (const char *data, uint16_t len, bool forceCloseAfterSent=false) |
bool | sendString (const String &data, bool forceCloseAfterSent=false) |
bool | isProcessing () |
TcpClientState | getConnectionState () |
void | setCloseAfterSent (bool ignoreIncomingData=false) |
err_t | onConnected (err_t err) override |
err_t | onReceive (pbuf *buf) override |
err_t | onSent (uint16_t len) override |
void | onError (err_t err) override |
void | pushAsyncPart () |
void | freeStreams () |
void | setBuffer (ReadWriteStream *stream) |
int | writeString (const char *data, uint8_t apiflags=TCP_WRITE_FLAG_COPY) |
int | writeString (const String &data, uint8_t apiflags=TCP_WRITE_FLAG_COPY) |
virtual int | write (const char *data, int len, uint8_t apiflags=TCP_WRITE_FLAG_COPY) |
Base write operation. More... | |
int | write (IDataSourceStream *stream) |
uint16_t | getAvailableWriteSize () |
void | flush () |
void | setTimeOut (uint16_t waitTimeOut) |
IpAddress | getRemoteIp () const |
uint16_t | getRemotePort () const |
void | setDestroyedDelegate (TcpConnectionDestroyedDelegate destroyedDelegate) |
Sets a callback to be called when the object instance is destroyed. More... | |
void | setSslInitHandler (Ssl::Session::InitDelegate handler) |
Set the SSL session initialisation callback. More... | |
bool | setSslConnection (Ssl::Connection *connection) |
Ssl::Session * | getSsl () |
Get a pointer to the current SSL session object. More... | |
void | initialize (tcp_pcb *pcb) |
bool | internalConnect (IpAddress addr, uint16_t port) |
bool | sslCreateSession () |
virtual void | sslInitSession (Ssl::Session &session) |
Override in inherited classes to perform custom session initialisation. More... | |
virtual err_t | onPoll () |
void | trySend (TcpConnectionEvent event) |
err_t | internalOnConnected (err_t err) |
err_t | internalOnReceive (pbuf *p, err_t err) |
err_t | internalOnSent (uint16_t len) |
err_t | internalOnPoll () |
void | internalOnError (err_t err) |
void | internalOnDnsResponse (const char *name, LWIP_IP_ADDR_T *ipaddr, int port) |
Protected Attributes | |
ReadWriteStream * | buffer = nullptr |
Used internally to buffer arbitrary data via send() methods. More... | |
IDataSourceStream * | stream = nullptr |
The currently active stream being sent. More... | |
tcp_pcb * | tcp = nullptr |
uint16_t | sleep = 0 |
uint16_t | timeOut = USHRT_MAX |
By default a TCP connection does not have a time out. More... | |
bool | canSend = true |
bool | autoSelfDestruct = true |
Ssl::Session * | ssl = nullptr |
Ssl::Session::InitDelegate | sslInit |
bool | useSsl = false |
Constructor & Destructor Documentation
◆ MqttClient()
◆ ~MqttClient()
MqttClient::~MqttClient | ( | ) |
Member Function Documentation
◆ close()
|
overridevirtualinherited |
Reimplemented from TcpConnection.
◆ connect() [1/3]
|
overridevirtualinherited |
Reimplemented from TcpConnection.
◆ connect() [2/3]
|
overridevirtualinherited |
Reimplemented from TcpConnection.
◆ connect() [3/3]
Connect to a MQTT server.
- Parameters
-
url URL in the form "mqtt://user:password@server:port" or "mqtts://user:password@server:port" uniqueClientName
- Return values
-
bool
◆ flush()
|
inherited |
◆ freeStreams()
|
protectedinherited |
◆ getAvailableWriteSize()
|
inlineinherited |
◆ getConnectionState()
|
inlineinherited |
◆ getRemoteIp()
|
inlineinherited |
◆ getRemotePort()
|
inlineinherited |
◆ getSsl()
|
inlineinherited |
Get a pointer to the current SSL session object.
Note that this is typically used so we can query properties of an established session. If you need to change session parameters this must be done via setSslInitHandler
.
◆ initialize()
|
protectedinherited |
◆ internalConnect()
◆ internalOnConnected()
|
protectedinherited |
◆ internalOnDnsResponse()
|
protectedinherited |
◆ internalOnError()
|
protectedinherited |
◆ internalOnPoll()
|
protectedinherited |
◆ internalOnReceive()
|
protectedinherited |
◆ internalOnSent()
|
protectedinherited |
◆ isProcessing()
|
inlineinherited |
◆ onConnected()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onError()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onFinished()
|
overrideprotectedvirtual |
Reimplemented from TcpClient.
◆ onPoll()
|
protectedvirtualinherited |
◆ onReadyToSendData()
|
overrideprotectedvirtual |
Reimplemented from TcpConnection.
◆ onReceive()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onSent()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ publish() [1/2]
◆ publish() [2/2]
bool MqttClient::publish | ( | const String & | topic, |
IDataSourceStream * | stream, | ||
uint8_t | flags = 0 |
||
) |
◆ publishWithQoS()
|
inline |
◆ pushAsyncPart()
|
protectedinherited |
◆ send()
|
inherited |
◆ sendString()
|
inlineinherited |
◆ setBuffer()
|
protectedinherited |
◆ setCallback()
|
inline |
Provide a function to be called when a message is received from the broker.
- Todo:
- deprecate: Use setEventHandler(MQTT_TYPE_PUBLISH, MqttDelegate handler) instead.
◆ setCloseAfterSent()
|
inlineinherited |
Schedules the connection to get closed after the data is sent
- Parameters
-
ignoreIncomingData when that flag is set the connection will start ignoring incoming data.
◆ setCompleteDelegate()
|
inlineinherited |
Set or clear the callback for connection close.
- Parameters
-
completeCb callback delegate or nullptr
◆ setConnectedHandler()
|
inline |
Sets a handler to be called after successful MQTT connection.
- Parameters
-
handler
◆ setDestroyedDelegate()
|
inlineinherited |
Sets a callback to be called when the object instance is destroyed.
- Parameters
-
destroyedDelegate
◆ setDisconnectHandler()
|
inline |
Sets a handler to be called on disconnect from the server.
- Parameters
-
handler
◆ setEventHandler()
|
inline |
◆ setKeepAlive()
|
inline |
Sets keep-alive time. That information is sent during connection to the server.
- Parameters
-
seconds
◆ setMessageHandler()
|
inline |
Sets a handler to be called after receiving a PUBLISH message from the server.
- Parameters
-
handler
◆ setPayloadParser()
|
inline |
Sets or clears a payload parser (for PUBLISH messages from the server to us)
- Note
- We no longer have size limitation for incoming or outgoing messages but in order to prevent running out of memory we have a "sane" payload parser that will read up to 1K of payload
◆ setPingRepeatTime()
void MqttClient::setPingRepeatTime | ( | unsigned | seconds | ) |
Sets the interval in which to ping the remote server if there was no activity
- Parameters
-
seconds
◆ setPublishedHandler()
|
inline |
Sets a handler to be called after receiving confirmation from the server for a published message from the client.
- Parameters
-
handler
◆ setReceiveDelegate()
|
inlineinherited |
Set or clear the callback for received data.
- Parameters
-
receiveCb callback delegate or nullptr
◆ setSslConnection()
|
inlineinherited |
◆ setSslInitHandler()
|
inlineinherited |
Set the SSL session initialisation callback.
- Parameters
-
handler
◆ setTimeOut()
|
inherited |
◆ setWill() [1/2]
Sets last will and testament
- Parameters
-
topic message flags QoS, retain, etc flags
- Return values
-
bool
◆ setWill() [2/2]
|
inline |
- Todo:
- deprecate: Use setWill(const String& topic, const String& message,uint8_t flags) instead
◆ sslCreateSession()
|
protectedinherited |
◆ sslInitSession()
|
inlineprotectedvirtualinherited |
Override in inherited classes to perform custom session initialisation.
Called when TCP connection is established before initiating handshake.
Reimplemented in HttpClientConnection.
◆ subscribe()
◆ trySend()
|
inlineprotectedinherited |
◆ unsubscribe()
◆ write() [1/2]
|
virtualinherited |
Base write operation.
- Parameters
-
data len apiflags TCP_WRITE_FLAG_COPY, TCP_WRITE_FLAG_MORE
- Return values
-
int -1 on error
Reimplemented in FtpDataStream.
◆ write() [2/2]
|
inherited |
◆ writeString() [1/2]
|
inlineinherited |
◆ writeString() [2/2]
|
inlineinherited |
Member Data Documentation
◆ autoSelfDestruct
|
protectedinherited |
◆ buffer
|
protectedinherited |
Used internally to buffer arbitrary data via send() methods.
◆ canSend
|
protectedinherited |
◆ sleep
|
protectedinherited |
◆ ssl
|
protectedinherited |
◆ sslInit
|
protectedinherited |
◆ stream
|
protectedinherited |
The currently active stream being sent.
◆ tcp
|
protectedinherited |
◆ timeOut
|
protectedinherited |
By default a TCP connection does not have a time out.
◆ useSsl
|
protectedinherited |
The documentation for this class was generated from the following file: