乐鑫技术交流
直播中

刘杰

7年用户 1219经验值
私信 关注
[问答]

esp32-c3 wifi和mqtt实现重连方法有哪些?

问题请教,esp32-c3 wifi和mqtt实现重连方法有哪些?

目前只实现了一种:

static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)

{

     case MQTT_EVENT_DISCONNECTED:

        //在这里加好像不行。

        ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED");

        break;

case MQTT_EVENT_ERROR:

        ESP_LOGI(TAG, "MQTT_EVENT_ERROR");

        if (event->error_handle->error_type == MQTT_ERROR_TYPE_TCP_TRANSPORT) {

            log_error_if_nonzero("reported from esp-tls", event->error_handle->esp_tls_last_esp_err);

            log_error_if_nonzero("reported from tls stack", event->error_handle->esp_tls_stack_err);

            log_error_if_nonzero("captured as transport's socket errno",  event->error_handle->esp_transport_sock_errno);

            ESP_LOGI(TAG, "Last errno string (%s)", strerror(event->error_handle->esp_transport_sock_errno));

            

        }

        //202205111413 test

        esp_wifi_disconnect...;

        esp_wifi_set_config... ;

        esp_wifi_connect...;

        esp_mqtt_client_disconnect...;

        esp_mqtt_client_reconnect...;


。。。

}

能实现WiFi断网后再开启重连。

1,不知道这方法长期来讲是靠谱不

2,为什么在MQTT_EVENT_DISCONNECTED不行,在MQTT_EVENT_ERROR行呢?

3,在程序中还有什么方法能知道设备WiFi掉线了,mqtt连不上了?mqtt还可以靠这个事件。WiFi呢?

4,如果用个笨的方法WiFi断网就直接复位,长期的话,那会让设备出问题不。

谢谢大家。。。

更多回帖

发帖
×
20
完善资料,
赚取积分