Reputation: 2471
When I click on Onboard option in AWS IoT console, I see an option to register a thing. Clicking on it, followed by Get Started, shows me a page to select an SDK for registration. The first step is to select OS and then a language. At this point, I do not see an option to select a C or a C++ SDK!
The page for AWS IoT SDKs shows the C/C++ SDK. But, the page for AWS IoT Device SDK does not show the C++ SDK.
My goal is to build MQTT client in C/C++ for a RTOS device. I would register it 'outside' of the device.
Upvotes: 0
Views: 826
Reputation: 22603
1. Different SDKs
There are 2 main categories of AWS SDKs when it comes to AWS IOT.
Both come in a variety of languages. Device SDKs typically use MQTT and x509 certificates for authentication to AWS IOT but you can communicate over https as well. An overview of the supported protocols for iot clients can be found here. Keep in mind that devices typically tend to use bi-directional long lived communication with aws iot using MQTT (publish / subscribe). The http protocol can only be used to send messages from the device to AWS IOT.
If you're on a C based system you have 2 options :
These use standard MQTT communication.
2. Difference between AWS IoT SDK and Eclipse Paho
Both will use MQTT / x509 certificates and MQTT_SSL_VERSION_TLS_1_2. In theory both should work with Aws IOT and I have seen working samples of the Eclispe Paho MQTT client in C++ running against Aws IOT.
From my experience, you're typically better off using the vendors SDK as they will have better support / samples / features then the more generic MQTT libs.
There's also some value about being cloud agnostic and using standard protocols / libraries like MQTT/Paho to avoid (aws) vendor lock-in.
3. Paho client and AWS IOT
AWS IoT needs TLS V1.2 so your Paho client needs to support that. I believe it should be possible now with Paho cpp.
Upvotes: 1