aws-cpp-sdk:如何通过 Web Socket 使用 MQTT 发布物联网(c++ 中)

Posted

技术标签:

【中文标题】aws-cpp-sdk:如何通过 Web Socket 使用 MQTT 发布物联网(c++ 中)【英文标题】:aws-cpp-sdk : How to IoT publish using MQTT over Web Socket (in c++) 【发布时间】:2017-06-28 14:44:09 【问题描述】:

我做了很多研究(在这里和在 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】:

正如 Aws on Git Hub 的软件工程师所回答的那样,我想做的事情还不可能。

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

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

【讨论】:

以上是关于aws-cpp-sdk:如何通过 Web Socket 使用 MQTT 发布物联网(c++ 中)的主要内容,如果未能解决你的问题,请参考以下文章

FLASK python web:MySQLdb._exceptions.OperationalError:(2002,“无法通过套接字'/tmp/mysql.sock'连接到本(代码

如何找到我的 php-fpm.sock?

如何通过袜子发送TCP数据包?

怎么把http代理转化Sock代理?

web框架 源码

自定义web框架