diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c index 2d6180b..1303886 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c @@ -314,6 +314,7 @@ static int iot_mqtt_send(const uint8_t *buf, uint16_t len) { g_iot_socket = 0xFF; g_iot_state = IOT_STATE_DISCONNECTED; _iot_send_fail_cnt = 0; + _iot_reconnect_deadline = mstick() + 3000; // 3s 后重连, 让 WCHNET 清旧 socket } return -1; } @@ -829,9 +830,10 @@ void iot_mqtt_publish_sensor(void) { * 连接管理 *===========================================================================*/ -/* 连接到 MQTT Broker — 复用 SocketId_TCP(已由 WCHNET_CreateTcpMqttSocket 创建并连接) */ +/* 连接到 MQTT Broker — 重新创建 TCP socket 并发起连接 */ static void iot_connect_broker(void) { - g_iot_socket = SocketId_TCP; // 复用已创建的 MQTT socket + WCHNET_CreateTcpMqttSocket(); // 重新 create + connect (不是复用旧的!) + g_iot_socket = SocketId_TCP; g_iot_state = IOT_STATE_TCP_CONNECTING; _iot_connect_start = mstick(); PRINT("IOT: TCP connecting to broker (sock=%d)...\n", g_iot_socket);