MQTT and MQTTS with wolfSSL TSL library

Dependencies:   FP MQTTPacket

Dependents:   YoPlegma

Fork of MQTT by MQTT

MQTT is light weight publish/subscribe based messaging protocol for M2M, IoT. This library was forked from MQTT https://developer.mbed.org/teams/mqtt for adding MQTTS security layer on the protocol. TLS(SSL) part of the library is by wolfSSL.https://developer.mbed.org/users/wolfSSL/code/wolfSSL/

"connect" method was extended for TLS. Rest of API's stay compatible with MQTT.

connect methode

 int connect(char* hostname, int port,  const char *certName = NULL, int timeout=1000)

The 3rd argument certName can be following values.

  • NULL: connecting with MQTT
  • pointer to certificate file: connecting with MQTTS. PEM or DER for server verification.
  • pointer to NULL string: connecting with MQTTS without server verification. This option is for prototyping only, not recommended in security perspective.

日本語:https://developer.mbed.org/users/wolfSSL/code/MQTTS/wiki/MQTTSライブラリ

Revision:
21:e918525e529d
Parent:
20:cad3d54d7ecf
Child:
22:aadb79d29330
--- a/MQTTClient.h	Mon Apr 28 16:07:51 2014 +0000
+++ b/MQTTClient.h	Tue Apr 29 16:04:55 2014 +0000
@@ -13,6 +13,15 @@
  * Contributors:
  *    Ian Craggs - initial API and implementation and/or initial documentation
  *******************************************************************************/
+ 
+ /*
+ 
+ TODO: 
+ 
+ log messages - use macros
+ define return code constants
+ 
+ */
 
 #if !defined(MQTTCLIENT_H)
 #define MQTTCLIENT_H
@@ -75,6 +84,12 @@
 } Limits;
   
   
+/**
+ * @class Client
+ * @brief blocking, non-threaded MQTT Client API
+ * @param Network a network class which supports send, receive
+ * @param Timer a timer class with the methods: 
+ */ 
 template<class Network, class Timer> class Client
 {
     
@@ -548,7 +563,7 @@
     int len = MQTTSerialize_disconnect(buf, limits.MAX_MQTT_PACKET_SIZE);
     int rc = sendPacket(len, timer);   // send the disconnect packet
     
-    return rc;
+    return (rc == len) ? 0 : -1;
 }