我做了很多研究(在这里和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);
答案 0 :(得分:0)
Aws在Git Hub上的软件工程师回答说,我想要做的还不可能。
https://github.com/aws/aws-sdk-cpp/issues/594
c ++ sdk目前不支持mqtt。我们计划将此添加到即将推出的c99 sdk中。我们会及时通知您。与此同时,如果你需要使用mqtt,你可以使用iot sdk。