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
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)
{
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];
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");
}