【发布时间】:2017-10-11 10:40:30
【问题描述】:
我正在使用 Eclipse Paho MQTT C 客户端使用 openssl 通过 TLS 连接到 mosquitto 代理。这是我的代码的一部分:
MQTTClient client;
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
MQTTClient_message pubmsg = MQTTClient_message_initializer;
MQTTClient_SSLOptions sslOptions = MQTTClient_SSLOptions_initializer;
MQTTClient_deliveryToken token;
int rc;
MQTTClient_create(&client, ADDRESS, CLIENTID,
MQTTCLIENT_PERSISTENCE_NONE, NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
/* TLS */
sslOptions.enableServerCertAuth = 0;
sslOptions.trustStore = "ca_rsp.crt";
conn_opts.ssl = &sslOptions;
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
{
printf("Failed to connect, return code %d\n", rc);
exit(EXIT_FAILURE);
}
实际上,每次我重新连接到代理时,客户端都会进行一次完整的握手。我想使用 TLS 会话恢复来减少开销。我在网上搜索过,但没有找到任何如何以简单方式实现它的示例。
有什么建议吗?
谢谢
【问题讨论】: