MQTT TLS会话恢复C
问题描述:
我正在使用openssl使用Eclipse Paho MQTT C客户端通过TLS连接到一个mosquitto代理。这是我的代码的一部分:MQTT TLS会话恢复C
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会话恢复来减少开销。我在网上搜索,但我还没有找到任何如何以简单的方式实现的例子。
有什么建议吗?
感谢
答
在这里,这https://dev.eclipse.org/mhonarc/lists/mosquitto-dev/msg01606.html
近日来到了mosquitto开发邮件列表下面的摘录接缝用代码来暗示它可能不能只是还没有,因为它是。
如何,我可以使用Mosquitto/OpenSSL的C API利用在 MQTT C客户会话票据?
不是在此刻,这需要更改代码是多一点 参与 - 它看起来像我们需要使用SSL_set_session()到 保存的会话应用到您的客户端和SSL_CTX_sess_set_new_cb()保存 会话结束。
是否有任何方法可以在客户端持续使用会话票据,因此他们 将在重新启动时保持有效?
有了上述变化,是的。