Sming Framework API
Sming - Open Source framework for high efficiency WiFi SoC ESP8266 native development with C++ language.
|
Public Member Functions | |
MqttClient (bool withDefaultPayloadParser=true, bool autoDestruct=false) | |
void | setKeepAlive (uint16_t seconds) |
void | setPingRepeatTime (unsigned seconds) |
bool | setWill (const String &topic, const String &message, uint8_t flags=0) |
bool | connect (const Url &url, const String &uniqueClientName, uint32_t sslOptions=0) |
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=0) |
void | setConnectedHandler (MqttDelegate handler) |
void | setPublishedHandler (MqttDelegate handler) |
void | setMessageHandler (MqttDelegate handler) |
void | setDisconnectHandler (TcpClientCompleteDelegate handler) |
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, uint32_t sslOptions=0) override |
bool | connect (IPAddress addr, uint16_t port, bool useSsl=false, uint32_t sslOptions=0) 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 () |
bool | addSslValidator (SslValidatorCallback callback, void *data=nullptr) |
Allows setting of multiple SSL validators after a successful handshake. More... | |
bool | pinCertificate (const uint8_t *fingerprint, SslFingerprintType type) |
Requires (pins) the remote SSL certificate to match certain fingerprints. More... | |
bool | pinCertificate (SslFingerprints &fingerprints) |
Requires (pins) the remote SSL certificate to match certain fingerprints. More... | |
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 |
err_t | onSslConnected (SSL *ssl) 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 | addSslOptions (uint32_t sslOptions) |
bool | setSslClientKeyCert (const uint8_t *key, int keyLength, const uint8_t *certificate, int certificateLength, const char *keyPassword=nullptr, bool freeAfterHandshake=false) SMING_DEPRECATED |
Sets client private key, certificate and password from memory. More... | |
bool | setSslClientKeyCert (const SslKeyCertPair &clientKeyCert, bool freeAfterHandshake=false) SMING_DEPRECATED |
Sets client private key, certificate and password from memory. More... | |
void | freeSslClientKeyCert () SMING_DEPRECATED |
Frees the memory used for the key and certificate pair. More... | |
bool | setSslKeyCert (const uint8_t *key, int keyLength, const uint8_t *certificate, int certificateLength, const char *keyPassword=nullptr, bool freeAfterHandshake=false) |
Sets private key, certificate and password from memory for the SSL connection If this methods is called from a client then it sets the client key and certificate If it is called from a server then it sets the server certificate and key. Server and Client certificates differ. Client certificate is used for identification. Server certificate is used for encrypt/decrypt the data. Make sure to use the correct certificate for the desired goal. More... | |
bool | setSslKeyCert (const SslKeyCertPair &keyCert, bool freeAfterHandshake=false) |
Sets private key, certificate and password from memory for the SSL connection If this methods is called from a client then it sets the client key and certificate If it is called from a server then it sets the server certificate and key. Server and Client certificates differ. Client certificate is used for identification. Server certificate is used for encrypt/decrypt the data. Make sure to use the correct certificate for the desired goal. More... | |
void | freeSslKeyCert () |
Frees the memory used for the key and certificate pair. More... | |
void | setSsl (SSL *ssl) |
SSL * | getSsl () |
void | initialize (tcp_pcb *pcb) |
bool | internalConnect (IPAddress addr, uint16_t port) |
virtual err_t | onPoll () |
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 * | ssl = nullptr |
SSLCTX * | sslContext = nullptr |
SSL_EXTENSIONS * | sslExtension = nullptr |
bool | sslConnected = false |
uint32_t | sslOptions = 0 |
SslKeyCertPair | sslKeyCert |
bool | freeKeyCertAfterHandshake = false |
SslSessionId * | sslSessionId = nullptr |
bool | useSsl = false |
|
inlineinherited |
Allows setting of multiple SSL validators after a successful handshake.
callback | The callback function to be invoked on validation |
data | The data to pass to the callback |
bool | true on success, false on failure |
bool MqttClient::connect | ( | const Url & | url, |
const String & | uniqueClientName, | ||
uint32_t | sslOptions = 0 |
||
) |
Connect to a MQTT server.
url,in | the form "mqtt://user:password@server:port" or "mqtts://user:password@server:port" |
client | name |
|
inlineinherited |
Frees the memory used for the key and certificate pair.
freeSslKeyCert()
instead
|
inlineinherited |
Frees the memory used for the key and certificate pair.
|
inlineinherited |
Requires (pins) the remote SSL certificate to match certain fingerprints.
fingerprint | The fingerprint data against which the match should be performed. Must be allocated on the heap and will be deleted after use. Do not re-use outside of this method. |
type | The fingerprint type - see SslFingerprintType for details. |
bool | true on success, false on failure |
|
inlineinherited |
Requires (pins) the remote SSL certificate to match certain fingerprints.
fingerprints | - passes the certificate fingerprints by reference. |
bool | true on success, false on failure |
|
inline |
|
inline |
Provide a function to be called when a message is received from the broker.
|
inlineinherited |
Set or clear the callback for connection close.
completeCb | callback delegate or nullptr |
|
inline |
Sets a handler to be called after successful MQTT connection
MqttDelegate | handler |
|
inlineinherited |
Sets a callback to be called when the object instance is destroyed.
TcpServerConnectionDestroyedDelegate | destroyedDelegate - callback |
|
inline |
Sets a handler to be called on disconnect from the server
TcpClientCompleteDelegate | handler |
|
inline |
Sets keep-alive time. That information is sent during connection to the server
uint16_t | seconds |
|
inline |
Sets a handler to be called after receiving a PUBLISH message from the server
MqttDelegate | handler |
|
inline |
Sets or clears a payload parser (for PUBLISH messages from the server to us) Notice: 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
void MqttClient::setPingRepeatTime | ( | unsigned | seconds | ) |
Sets the interval in which to ping the remote server if there was no activity
unsigned | int seconds |
|
inline |
Sets a handler to be called after receiving confirmation from the server for a published message from the client
MqttDelegate | handler |
|
inlineinherited |
Set or clear the callback for received data.
receiveCb | callback delegate or nullptr |
|
inlineinherited |
Sets client private key, certificate and password from memory.
const | uint8_t *keyData |
int | keyLength |
const | uint8_t *certificateData |
int | certificateLength |
const | char *keyPassword |
bool | freeAfterHandshake |
|
inlineinherited |
Sets client private key, certificate and password from memory.
SSLKeyCertPair | |
bool | freeAfterHandshake |
|
inlineinherited |
Sets private key, certificate and password from memory for the SSL connection If this methods is called from a client then it sets the client key and certificate If it is called from a server then it sets the server certificate and key. Server and Client certificates differ. Client certificate is used for identification. Server certificate is used for encrypt/decrypt the data. Make sure to use the correct certificate for the desired goal.
const | uint8_t *keyData |
int | keyLength |
const | uint8_t *certificateData |
int | certificateLength |
const | char *keyPassword |
bool | freeAfterHandshake |
|
inlineinherited |
Sets private key, certificate and password from memory for the SSL connection If this methods is called from a client then it sets the client key and certificate If it is called from a server then it sets the server certificate and key. Server and Client certificates differ. Client certificate is used for identification. Server certificate is used for encrypt/decrypt the data. Make sure to use the correct certificate for the desired goal.
SSLKeyCertPair | |
bool | freeAfterHandshake |
|
inline |
|
virtualinherited |
Base write operation.
data | |
len | |
apiflags | TCP_WRITE_FLAG_COPY, TCP_WRITE_FLAG_MORE |
int | -1 on error |
Reimplemented in FtpDataStream.
|
protectedinherited |
Used internally to buffer arbitrary data via send() methods.
|
protectedinherited |
The currently active stream being sent.
|
protectedinherited |
By default a TCP connection does not have a time out.