aws-cpp-sdk:如何通过Web Socket使用MQTT进行IoT发布(在c ++中)

时间:2017-06-28 14:44:09

标签: c++ amazon-web-services websocket mqtt iot

我做了很多研究(在这里和github上),以了解Iot Data Plane类是如何工作的。

我想知道如何使用c ++ sdk和端口443发布关于主题的数据。我想建立我的连接,并且在我关闭它之前保持连接存在。

简而言之,我需要帮助才能在Linux上使用cpp sdk通过Web Socket发送MQTT。

有人可以提供帮助吗?

 Aws::SDKOptions options;
 options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
 Aws::InitAPI(options);

 Aws::Auth::AWSCredentials credentials;
 credentials.SetAWSAccessKeyId("a valid key id generated in Aws IAM");
 credentials.SetAWSSecretKey("a valid secret key generated in Aws IAM");

 Aws::IoTDataPlane::IoTDataPlaneClient client(credentials);
 Aws::IoTDataPlane::Model::PublishRequest request;
 std::shared_ptr<Aws::StringStream> stream = std::make_shared<Aws::StringStream>("Something to publish.");

 request.SetBody(stream);
 request.SetTopic("MyTopic");

 Aws::IoTDataPlane::Model::PublishOutcome outcome(client.Publish(request));
 if(outcome.IsSuccess())
 {
    printf("Success");
 }
 else
 {
    printf("%s", outcome.GetError().GetMessage().c_str());
 }
 Aws::ShutdownAPI(options);

1 个答案:

答案 0 :(得分:0)

Aws在Git Hub上的软件工程师回答说,我想要做的还不可能。

https://github.com/aws/aws-sdk-cpp/issues/594

  

c ++ sdk目前不支持mqtt。我们计划将此添加到即将推出的c99 sdk中。我们会及时通知您。与此同时,如果你需要使用mqtt,你可以使用iot sdk。