Я использую клиент Eclipse Paho MQTT C для подключения к брокеру mosquitto с помощью TLS с помощью openssl. Это часть моего кода:
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, чтобы уменьшить накладные расходы. Я искал в Интернете, но не нашел ни одного примера того, как реализовать это простым способом.
Любое предложение?
Спасибо