HelloMQTT over TLS.
Fork of HelloMQTT by
HelloMQTT over TLS
This program is a fork of HelloMQTT. Added TLS capability by using TLSSocket library. Tested on K64F.
This sample program connects to iot.eclipse.org:8883
by default. Verifies server identification. Subscribes a certain topic. Then publishes three messages with different QoSs, i.e. QoS0
, QoS1
, and QoS2
.
Warning
Some brokers do not accept QoS2 and/or QoS1 message. For example, AWS IoT Message Broker doesn't accept QoS2. In such broker, this program doesn't work as is. Change QoS level.
Output from console
HelloMQTT: version is 0.70 Opening network interface... Network interface opened successfully. Connecting to host iot.eclipse.org:8883 ... Connection established. MQTT client is trying to connect the server ... Client connected. Client is trying to subscribe a topic "mbed-test". Client has subscribed a topic "mbed-test". Client publishes messages ... Publishing message QoS 0. QoS 0 message published. ! Message arrived: qos 0, retained 0, dup 0, packetid 6257 ! Payload Hello World! QoS 0 message from app version 0.700000 Publishing message QoS 1. QoS 1 message published. ! Message arrived: qos 1, retained 0, dup 0, packetid 1 ! Payload Hello World! QoS 1 message from app version 0.700000 Publishing message QoS 2. QoS 2 message published. ! Message arrived: qos 2, retained 0, dup 0, packetid 2 ! Payload Hello World! QoS 2 message from app version 0.700000 Version 0.70: finish 3 msgs
Known Issues
On K64F, when serial baud rate is changed from 9600 to 115200, program fails.
Diff: main.cpp
- Revision:
- 19:7f7aba7a4a8b
- Parent:
- 18:07a79d8f01c3
- Child:
- 20:49c9daf2b0ff
--- a/main.cpp Mon Jul 27 09:30:31 2015 +0000 +++ b/main.cpp Thu Jul 30 13:49:18 2015 +0000 @@ -88,7 +88,7 @@ if ((rc = client.connect(data)) != 0) printf("rc from MQTT connect is %d\n", rc); - if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0) + if ((rc = client.subscribe(topic, MQTT::QOS2, messageArrived)) != 0) printf("rc from MQTT subscribe is %d\n", rc); MQTT::Message message; @@ -122,16 +122,10 @@ client.yield(100); if ((rc = client.unsubscribe(topic)) != 0) - { - lcd.cls(); printf("rc from unsubscribe was %d\n", rc); - } if ((rc = client.disconnect()) != 0) - { - lcd.cls(); printf("rc from disconnect was %d\n", rc); - } ipstack.disconnect();