From 3e7288afce970d98340f02dbd5c521b80bd97d5e Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=83=A1=E4=BC=A0=E5=86=9B?= <1224667075@qq.com> Date: Sat, 22 Nov 2025 01:37:24 +0000 Subject: [PATCH] Merge #2784 into sdk650pathc0423 from refs/changes/2784/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 胡传军 * refs/changes/2784/head: (5 commits squashed) - 故事打断修改 - Merge branch 'sdk650pathc0423' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk650pathc0423 - Merge branch 'sdk650pathc0423' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk650pathc0423 - Merge branch 'sdk650pathc0423' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk650pathc0423 - 修改打断重连 Signed-off-by: aliyun8003852482 <1224667075@qq.com> Merged-by: 薛文强 CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/2784 --- .../zhihui/leiniao/imsl_ln/ln_api_websocket.c | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c index c5ffc4899..000168063 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c @@ -335,9 +335,16 @@ static void ln_ws_url_callback(char *url, size_t url_size, char *header_buf, siz if (!token) token = ""; /* 仅使用 deviceToken 也可通过;额外带上 deviceId 与 reconnect 便于后端管理 */ - snprintf(url, url_size, "%s?deviceToken=%s&deviceId=%s&reconnect=%u", + if(g_ws_connected == WS_STATE_RECONNECTING) + { + snprintf(url, url_size, "%s?deviceToken=%s&deviceId=%s&reconnect=%u&reason=interrupted", base, token, device_id, g_ws_reconnect_count); - + } + else + { + snprintf(url, url_size, "%s?deviceToken=%s&deviceId=%s&reconnect=%u", + base, token, device_id, g_ws_reconnect_count); + } // /* 构建头部信息 */ snprintf(header_buf, header_size, "deviceId: %s\r\n", device_id); // 110.42.224.129 8910 @@ -1305,10 +1312,11 @@ int ln_ws_send_text(const char *text) return uapi_ws_send_text(text); } -// int ln_ws_send_random_story_cache(const char *story_theme) -// { - -// } +int ln_ws_send_random_story_cache(const char *story_theme) +{ + memcpy(story_theme_cache,story_theme,strlen(story_theme)); + return 0; +} /* 发送随机故事请求 */ int ln_ws_send_random_story_request(const char *story_theme) { @@ -1323,23 +1331,23 @@ int ln_ws_send_random_story_request(const char *story_theme) return -1; } - if (g_ws_connected != WS_STATE_CONNECTED) { + + ln_ws_send_voice_chat_interrupt("故事请求开始"); + + if (g_ws_connected == WS_STATE_RECONNECTING) { + // 重连中,缓存音频数据 + LN_WS_INFO("Connection reconnecting,ln_ws_send_random_story_request data (%s)\n", story_theme); + return ln_ws_send_random_story_cache(story_theme); + } + else if (g_ws_connected != WS_STATE_CONNECTED) { LN_WS_WARN("Cannot send random story request, connection state: %d\n", g_ws_connected); return -1; } - // ln_ws_send_voice_chat_interrupt("故事请求开始"); - - // if (g_ws_connected == WS_STATE_RECONNECTING) { - // // 重连中,缓存音频数据 - // LN_WS_INFO("Connection reconnecting,ln_ws_send_random_story_request data (%s)\n", story_theme); - // return ln_ws_audio_buffer_add(audio_data, audio_size, finished); - // } - // 生成聊天ID(使用当前对话ID) generate_chat_id(g_audio_chat_ctx.chat_id, sizeof(g_audio_chat_ctx.chat_id)); - // g_audio_chat_ctx.finish_state = LN_CHAT_SENT_END_NO_REPLY; + g_audio_chat_ctx.finish_state = LN_CHAT_SENT_END_NO_REPLY; // 生成消息ID char message_id[128]; @@ -2645,7 +2653,11 @@ static void ln_ws_reconnect_success_callback(void) g_ws_connected = WS_STATE_CONNECTED; - + if(strlen(story_theme_cache)>3) + { + ln_ws_send_random_story_request(story_theme_cache); + memset(story_theme_cache,0,sizeof(story_theme_cache)); + } LN_WS_INFO("Reconnect success event triggered\n"); } -- 2.17.1