Очистка Paho MQTT при прерывании записи для ошибки сокета в C - PullRequest
1 голос
/ 18 июня 2020

Я пытался отправить некоторую информацию с помощью MQTT со встроенного устройства (считывателя RFID). Это устройство передает данные очень часто (~ 25-30 данных в секунду). Когда я запускаю процесс в устройстве, он работает без проблем в течение ~ 9-10 часов. Затем процесс завершается, и при проверке журналов он говорит:

cleaning in abortwrite for socket 5
Failed to connect, return code -1

cleaning in abortwrite for socket 4
Failed to connect, return code -1

Эта проблема связана с MQTT или какой-либо памятью? Может ли кто-нибудь помочь мне с этим?

Пожалуйста, найдите приведенный ниже код Я использовал

   #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
   #include "MQTTClient.h"

    int main()
    {

    MQTTClient client;
    MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
    MQTTClient_message pubmsg = MQTTClient_message_initializer;
    MQTTClient_deliveryToken token;
    int rc;

    MQTTClient_create(&client, "tcp://mqtt1.mindlogic.com:1883", "ExampleClientPub",
        MQTTCLIENT_PERSISTENCE_NONE, NULL);
    conn_opts.keepAliveInterval = 20;
    conn_opts.cleansession = 1;

    if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
    {
        printf("Failed to connect, return code %d\n", rc);
        exit(EXIT_FAILURE);
    }


    pubmsg.payload = buf;
    pubmsg.payloadlen = (int)strlen(buf);
    // pubmsg.payloadlen = sizeof *antenna_id;

    pubmsg.qos = 1;

    pubmsg.retained = 0;
    MQTTClient_publishMessage(client, "mqtt-ex", &pubmsg, &token);
    printf("Waiting for up to %d seconds for publication of %s\n""on topic %s for client with ClientID: %s\n",(int)(10000L/1000), "Hello World!", "MQTT-Examples", "ExampleClientPub");
    rc = MQTTClient_waitForCompletion(client, token, 10000L);
    printf("Message with delivery token %d delivered\n", token);
    MQTTClient_disconnect(client, 10000);
    MQTTClient_destroy(&client);

    }
...