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()保存 会话结束。

是否有任何方法可以在客户端持续使用会话票据,因此他们 将在重新启动时保持有效?

有了上述变化,是的。