goto cleanup_and_exit;
}
- while (chat_client->handshake==0)
- {
+ // 等待WebSocket握手完成,增加超时机制
+ uint32_t handshake_start_time = (uint32_t)osKernelGetTickCount();
+ const uint32_t handshake_timeout_ms = 30000; // 30秒超时
+
+ while (chat_client->handshake == 0) {
+ // 检查是否超时
+ if ((uint32_t)osKernelGetTickCount() - handshake_start_time > handshake_timeout_ms) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WebSocket握手超时 (%d ms),重新连接", handshake_timeout_ms);
+ lwip_close_websocket_client(chat_client);
+ chat_client = NULL;
+ goto char_reconnet;
+ }
+
msleep(1000);
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "等待WebSocket握手完成... (%d ms)",
+ (uint32_t)osKernelGetTickCount() - handshake_start_time);
}
+
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "WebSocket握手完成,耗时 %d ms",
+ (uint32_t)osKernelGetTickCount() - handshake_start_time);
// 设置socket超时
// struct timeval timeout;
goto asr_cleanup_and_exit;
}
- while (asr_client->handshake==0)
- {
+ // 等待ASR WebSocket握手完成,增加超时机制
+ uint32_t asr_handshake_start_time = (uint32_t)osKernelGetTickCount();
+ const uint32_t asr_handshake_timeout_ms = 30000; // 30秒超时
+
+ while (asr_client->handshake == 0) {
+ // 检查是否超时
+ if ((uint32_t)osKernelGetTickCount() - asr_handshake_start_time > asr_handshake_timeout_ms) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ASR WebSocket握手超时 (%d ms),重新连接", asr_handshake_timeout_ms);
+ lwip_close_websocket_client(asr_client);
+ asr_client = NULL;
+ goto asr_cleanup_and_exit;
+ }
+
msleep(1000);
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "等待ASR WebSocket握手完成... (%d ms)",
+ (uint32_t)osKernelGetTickCount() - asr_handshake_start_time);
}
+
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ASR WebSocket握手完成,耗时 %d ms",
+ (uint32_t)osKernelGetTickCount() - asr_handshake_start_time);
uapi_cat1_keep_wakeup(1);
goto tts_cleanup_and_exit;
}
- while (tts_client->handshake==0)
- {
+ // 等待TTS WebSocket握手完成,增加超时机制
+ uint32_t tts_handshake_start_time = (uint32_t)osKernelGetTickCount();
+ const uint32_t tts_handshake_timeout_ms = 30000; // 30秒超时
+
+ while (tts_client->handshake == 0) {
+ // 检查是否超时
+ if ((uint32_t)osKernelGetTickCount() - tts_handshake_start_time > tts_handshake_timeout_ms) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TTS WebSocket握手超时 (%d ms),重新连接", tts_handshake_timeout_ms);
+ lwip_close_websocket_client(tts_client);
+ tts_client = NULL;
+ goto tts_cleanup_and_exit;
+ }
+
msleep(1000);
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "等待TTS WebSocket握手完成... (%d ms)",
+ (uint32_t)osKernelGetTickCount() - tts_handshake_start_time);
}
+
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "TTS WebSocket握手完成,耗时 %d ms",
+ (uint32_t)osKernelGetTickCount() - tts_handshake_start_time);
server_state = 0x04 ^ server_state;