amazon-web-services - 从 paho 连接到 AWS 失败
问题描述
我正在尝试使用 paho MQTT C 库连接到 AWS。我已经正确设置了我的 AWS 事物和证书。我通过使用 mosquitto 和 MQTTFx 工具发布来测试它。
我尝试将连接 URL、证书文件和密钥映射到 MQTTClient.ssl 所需的参数,但连接调用一直失败。
我不能在这里发布整个代码,所以我只会发布相关的部分。
#define ADDRESS "ssl://xxxxxxxxxxxxxxxx-2.amazonaws.com:8883"
#define CLIENTID "testclient"
#define TOPIC_REQ "req/16000393" //this is the topic I'm subscribing to at AWS side (publishing from client laptop)
...
#define CRT_FILE "./certificate.pem.crt"
#define KEY_FILE "./private.pem.key"
#define CA_FILE "./rootCA.pem"
...
int main(int argc, char* argv[])
{
MQTTClient client;
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
MQTTClient_message pubmsg = MQTTClient_message_initializer;
MQTTClient_deliveryToken token;
MQTTClient_SSLOptions sslopts = MQTTClient_SSLOptions_initializer;
int rc;
int ch;
conn_opts.ssl = &sslopts;
conn_opts.ssl->trustStore = CRT_FILE;
conn_opts.ssl->keyStore = CA_FILE;
conn_opts.ssl->privateKey = KEY_FILE;
conn_opts.ssl->verify = 1;
MQTTClient_create(&client, ADDRESS, CLIENTID,
MQTTCLIENT_PERSISTENCE_NONE, NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
MQTTClient_setCallbacks(client, NULL, connlost, msgarrvd, delivered);
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
{
printf("Failed to connect, return code %d\n", rc);
exit(EXIT_FAILURE);
}
...
连接不断失败。请帮忙!我没主意了。
解决方案
推荐阅读
- fluid-framework - 我应该为 FluidFramework 使用哪种嵌套数据结构
- curl - 将 CURL 帖子导入 Postman 时出错
- javascript - 从 Angular 指令绑定子元素值
- python - .iloc[] 中可调用的 Lambda 函数
- c++ - 您可以像删除普通整数一样删除 1 个整数的 C 数组吗?
- cucumber - Courgette-jvm 在报告中包含项目名称、版本和环境?
- linux - 尝试连接到关闭的端口时,getsockopt 不返回错误
- ios - 有什么方法可以将视图从 swiftUI 更改为 UIKit?
- java - 如何正确显示用户的个人资料图片
- bash - 使用 getopt 解析负值的参数 - 有什么方法可以让 getopt 忽略它们?