问题请教,esp32-c3 wifi和mqtt实现重连方法有哪些?
Posted: Thu May 12, 2022 6:33 am
问题请教,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断网就直接复位,长期的话,那会让设备出问题不。
谢谢大家。。。
目前只实现了一种:
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断网就直接复位,长期的话,那会让设备出问题不。
谢谢大家。。。