[2026-05-12T15:35:21.215294] [INFO] Log system initialized at: /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/logs [2026-05-12T15:35:21.215462] [INFO] [Print] 数据库初始化成功 [2026-05-12T15:35:21.215464] [INFO] [Print] 数据库已初始化,跳过 [2026-05-12T15:35:21.216377] [INFO] [Print] UserRepository初始化成功 [2026-05-12T15:35:21.216387] [INFO] [Print] 数据库已初始化,跳过 [2026-05-12T15:35:21.217784] [INFO] [Print] ChatRepository初始化成功 [2026-05-12T15:35:21.217813] [INFO] [Print] 数据库已初始化,跳过 [2026-05-12T15:35:21.218414] [INFO] [Print] NFCRepository初始化成功 [2026-05-12T15:35:21.218997] [INFO] [Print] 【DbMigration】userAction 已清理过,跳过 [2026-05-12T15:35:21.220609] [INFO] [Print] device_uuid: IOSviPPSsV2OGFEKVsq8rMB3LlcTAto0rXkY [2026-05-12T15:35:21.224175] [INFO] [Print] 【DEBUG】build返回_homeWidget: null [2026-05-12T15:35:21.224266] [INFO] [Print] 【DEBUG】build返回_homeWidget: HomePage [2026-05-12T15:35:21.224838] [INFO] [Print] 【ASR】使用苹果原生 Speech(iOS) [2026-05-12T15:35:21.225165] [INFO] [Print] 【视频播放】初始化视频组件,当前阶段: StartupPhase.idle [2026-05-12T15:35:21.237965] [INFO] [Print] /api/v1/point/info 查询积分: uid=180 [2026-05-12T15:35:21.238204] [INFO] [Print] 【API请求】POST https://www.sumerumeta.cn/api/v1/point/info [2026-05-12T15:35:21.238226] [INFO] [Print] 【请求头】{Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM, Content-Type: application/json} [2026-05-12T15:35:21.238227] [INFO] [Print] 【请求体】{"uid":180} [2026-05-12T15:35:21.276347] [INFO] [Print] 【WebSocket】检测到有效 uid=180,正在自动连接... [2026-05-12T15:35:21.276368] [INFO] [Print] 【WebSocket】正在连接: wss://www.sumerumeta.cn/api/v1/chatsocket/180 [2026-05-12T15:35:21.276444] [INFO] [Print] 从数据库加载消息 [2026-05-12T15:35:21.276496] [INFO] [Print] 本地有消息,直接显示 [2026-05-12T15:35:21.289377] [INFO] [Print] 【增量同步】方法被调用,开始获取用户信息... [2026-05-12T15:35:21.289770] [INFO] [Print] 【增量同步】uid=180, 游标 lastServerId=3395, 本地消息数=20 [2026-05-12T15:35:21.289793] [INFO] [Print] 【API请求】GET https://www.sumerumeta.cn/api/v1/chat/sync?uid=180&lastServerId=3395 [2026-05-12T15:35:21.289796] [INFO] [Print] 【请求头】{Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM} [2026-05-12T15:35:21.306437] [INFO] [Print] 【视频播放】视频初始化完成 [2026-05-12T15:35:21.306443] [INFO] [Print] 【视频播放】初始化完成但组件已卸载,跳过 [2026-05-12T15:35:21.363346] [INFO] [Print] 【NativeASR】初始化: true [2026-05-12T15:35:21.910405] [INFO] [Print] 【WebSocket】连接成功: 180 [2026-05-12T15:35:21.910417] [INFO] [Print] 【WebSocket】开始进行 auth 鉴权... [2026-05-12T15:35:21.910427] [INFO] [Print] 【WebSocket 发送】{"msgId":"c_1778571321910","type":"auth","payload":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM"}} [2026-05-12T15:35:21.912884] [INFO] [Print] 【WebSocket 接收】{"type":"open"} [2026-05-12T15:35:21.912892] [INFO] [Print] 【主动推送】收到空 msgId 的非业务包或异常包,舍弃。 [2026-05-12T15:35:22.143891] [INFO] [Print] 【API响应】状态码: 200 [2026-05-12T15:35:22.143903] [INFO] [Print] 【响应体】{"code":200,"msg":null,"data":[]} [2026-05-12T15:35:22.143929] [INFO] [Print] 【增量同步】无遗漏消息 [2026-05-12T15:35:22.202490] [INFO] [Print] 【WebSocket 接收】{"msgId":"c_1778571321910","type":"auth_reply","payload":{"type":0,"code":200,"message":"ok"}} [2026-05-12T15:35:22.202597] [INFO] [Print] 【WebSocket】连接及鉴权成功: 180 [2026-05-12T15:35:22.805256] [INFO] [Print] /api/v1/system/checkUpdate 检查更新: version=1.0.7, platform=ios [2026-05-12T15:35:22.805382] [INFO] [Print] 【API请求】POST https://www.sumerumeta.cn/api/v1/system/checkUpdate [2026-05-12T15:35:22.805396] [INFO] [Print] 【请求头】{Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM, Content-Type: application/json} [2026-05-12T15:35:22.805403] [INFO] [Print] 【请求体】{"version":"1.0.7","platform":"ios"} [2026-05-12T15:35:23.092409] [INFO] [Print] 【API响应】状态码: 200 [2026-05-12T15:35:23.092421] [INFO] [Print] 【响应体】{"code":200,"msg":null,"data":{"rechargePoint":15580,"presentPoint":4054,"limitPoint":0,"monthCardPoint":0}} [2026-05-12T15:35:23.092738] [INFO] [Print] 保存用户信息成功: [2026-05-12T15:35:23.092741] [INFO] [Print] - deviceUuid: IOSviPPSsV2OGFEKVsq8rMB3LlcTAto0rXkY [2026-05-12T15:35:23.092742] [INFO] [Print] - id: 180 [2026-05-12T15:35:23.092744] [INFO] [Print] - nick: 熠辰 [2026-05-12T15:35:23.092745] [INFO] [Print] - gender: 2 (female) [2026-05-12T15:35:23.092747] [INFO] [Print] - birthTime: 2013-01-01 00:00:00.000 [2026-05-12T15:35:23.092747] [INFO] [Print] - points: 19634 [2026-05-12T15:35:23.092749] [INFO] [Print] - updatedAt: 2026-05-12 15:35:23.092458 [2026-05-12T15:35:23.097573] [INFO] [Print] 【API响应】状态码: 200 [2026-05-12T15:35:23.097576] [INFO] [Print] 【响应体】{"code":200,"msg":null,"data":{"hasUpdate":false,"newVersion":"1.0.0","forceUpdate":false}} [2026-05-12T15:35:23.959665] [INFO] [Print] 【键盘】onFocusChange 被调用 hasFocus=true 当前 _inputHasFocus=true [2026-05-12T15:35:23.959687] [INFO] [Print] 【键盘】已安排 0.5s 后执行 _scrollToLatestMessage [2026-05-12T15:35:24.462284] [INFO] [Print] 【键盘】输入框聚焦 0.5s 后执行 _scrollToLatestMessage [2026-05-12T15:35:35.176669] [INFO] [Print] 【键盘】onFocusChange 被调用 hasFocus=false 当前 _inputHasFocus=false [2026-05-12T15:35:35.176976] [INFO] [Print] 【思考中】已插入占位消息 [2026-05-12T15:35:35.177035] [INFO] [Print] 【WebSocket 发送】{"msgId":"c_1778571335177","type":"chat","payload":{"uid":180,"userText":"更换参考图","location":"120.03,30.25"}} [2026-05-12T15:35:35.197221] [INFO] [Print] 【键盘】onFocusChange 被调用 hasFocus=false 当前 _inputHasFocus=false [2026-05-12T15:35:35.228311] [INFO] [Print] 保存消息成功: local_text_1778571335176 [2026-05-12T15:35:42.348047] [INFO] [Print] 【WebSocket 接收】{"msgId":"c_1778571335177","serverId":3399,"type":"chat_reply","payload":{"type":1,"content":"贵人,参考图已经可以更换了。你直接上传新的图片,灵运这边就接着替你看下一版的效果。","action":"SHOW_UPLOAD","chips":["上传新图","继续换图"]}} [2026-05-12T15:35:42.348183] [INFO] [Print] 【思考中】已移除占位消息 [2026-05-12T15:35:42.348684] [INFO] [Print] 保存消息成功: gen_reply_1778571342348_0 [2026-05-12T15:35:42.349754] [INFO] [Print] 【同步游标】lastServerId 更新为 3399 [2026-05-12T15:35:44.123675] [INFO] [Print] 【ValidPhotoService】使用最新 AI 生成图做底图 [2026-05-12T15:35:44.124150] [INFO] [Print] 保存消息成功: local_manifest_1778571344123 [2026-05-12T15:35:44.144444] [INFO] [Print] 【键盘】onFocusChange 被调用 hasFocus=false 当前 _inputHasFocus=false [2026-05-12T15:35:44.146090] [INFO] [Print] 【ValidPhotoService】使用最新 AI 生成图做底图 [2026-05-12T15:35:52.204182] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571352204","type":"ping","payload":{}} [2026-05-12T15:35:52.484740] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571352204","type":"ping","payload":{}} [2026-05-12T15:36:08.091365] [INFO] [Print] ImageUploadService: 上传成功 {"url":"http://qiniucdn.sumerumeta.cn/images/1778571367624.jpg","key":"images/1778571367624.jpg","thumbnailPath":"/var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/image_cache/upload_thumb_1778571367624.jpg","originalPath":"/private/var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/tmp/image_picker_0C7C2CAB-B0C1-4350-B99E-ADC245E91138-47564-000017AD89BE51D4.jpg","originalSizeBytes":1585778} [2026-05-12T15:36:08.094808] [INFO] [Print] 【ValidPhotoService】图片进入待印状态暂存: /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/user_pending_basemap.jpg [2026-05-12T15:36:08.094831] [INFO] [Print] 【图片上报】开始通过 WebSocket 上报图片: http://qiniucdn.sumerumeta.cn/images/1778571367624.jpg [2026-05-12T15:36:08.094846] [INFO] [Print] 【思考中】已插入占位消息 [2026-05-12T15:36:08.094882] [INFO] [Print] 【WebSocket 发送】{"msgId":"c_1778571368094","type":"upload","payload":{"url":"http://qiniucdn.sumerumeta.cn/images/1778571367624.jpg"}} [2026-05-12T15:36:08.103445] [INFO] [Print] 【键盘】onFocusChange 被调用 hasFocus=false 当前 _inputHasFocus=false [2026-05-12T15:36:16.855022] [INFO] [Print] 【WebSocket 接收】{"msgId":"local_text_1778571376755","type":"chat_reply","payload":{"type":1,"content":"发现为面部特写或大头照。最佳参考为【无遮挡全身照】,只有半身可能导致体型骨步推演受限,但本法阵仍可强行推演。"}} [2026-05-12T15:36:16.855100] [INFO] [Print] 【主动推送】进入处理流,MsgID: local_text_1778571376755 [2026-05-12T15:36:16.855138] [INFO] [Print] 【防重拦截】serverId=0 的卡片早已在视图中展示,拦截从别处追加的意图 [2026-05-12T15:36:22.203899] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571382203","type":"ping","payload":{}} [2026-05-12T15:36:22.488416] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571382203","type":"ping","payload":{}} [2026-05-12T15:36:24.673507] [INFO] [Print] 【生命周期】应用变为非活动状态 (inactive) [2026-05-12T15:36:24.673535] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.inactive, 当前页面状态: HomePageState.chatting [2026-05-12T15:36:24.718365] [INFO] [Print] 【生命周期】应用进入前台 (resumed) [2026-05-12T15:36:24.718407] [INFO] [Print] 【WebSocket】应用回到前台 [2026-05-12T15:36:24.718410] [INFO] [Print] 【WebSocket】连接正常,通知上层触发增量同步 [2026-05-12T15:36:24.718415] [INFO] [Print] 【增量同步】WebSocket 重连/前台回调触发同步 [2026-05-12T15:36:24.718419] [INFO] [Print] 【增量同步】方法被调用,开始获取用户信息... [2026-05-12T15:36:24.718452] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.resumed, 当前页面状态: HomePageState.chatting [2026-05-12T15:36:24.718457] [INFO] [Print] 【增量同步】应用回到前台,触发同步 [2026-05-12T15:36:24.718894] [INFO] [Print] 【增量同步】uid=180, 游标 lastServerId=3399, 本地消息数=24 [2026-05-12T15:36:24.718968] [INFO] [Print] 【API请求】GET https://www.sumerumeta.cn/api/v1/chat/sync?uid=180&lastServerId=3399 [2026-05-12T15:36:24.718978] [INFO] [Print] 【请求头】{Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM} [2026-05-12T15:36:25.868247] [INFO] [Print] 【API响应】状态码: 200 [2026-05-12T15:36:25.868263] [INFO] [Print] 【响应体】{"code":200,"msg":null,"data":[]} [2026-05-12T15:36:25.868289] [INFO] [Print] 【增量同步】无遗漏消息 [2026-05-12T15:36:52.204546] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571412204","type":"ping","payload":{}} [2026-05-12T15:36:52.493806] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571412204","type":"ping","payload":{}} [2026-05-12T15:37:22.204031] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571442203","type":"ping","payload":{}} [2026-05-12T15:37:22.495627] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571442203","type":"ping","payload":{}} [2026-05-12T15:37:52.203365] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571472203","type":"ping","payload":{}} [2026-05-12T15:37:52.499463] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571472203","type":"ping","payload":{}} [2026-05-12T15:38:22.203012] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571502202","type":"ping","payload":{}} [2026-05-12T15:38:22.505626] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571502202","type":"ping","payload":{}} [2026-05-12T15:38:52.203196] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571532203","type":"ping","payload":{}} [2026-05-12T15:38:52.505434] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571532203","type":"ping","payload":{}} [2026-05-12T15:39:22.202773] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571562202","type":"ping","payload":{}} [2026-05-12T15:39:22.410570] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571562202","type":"ping","payload":{}} [2026-05-12T15:39:52.203255] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571592203","type":"ping","payload":{}} [2026-05-12T15:39:52.921356] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571592203","type":"ping","payload":{}} [2026-05-12T15:40:05.312327] [INFO] [Print] 【WebSocket 接收】{"msgId":"c_1778571368094","serverId":3400,"type":"upload_reply","payload":{"type":2,"content":"https://qiniucdn.sumerumeta.cn/gen/a01020746c2cccf31131e9f4d8fc8d86.png","imgGenTime":"丙午年 · 三月 · 申时","photoValid":true,"point":{"rechargePo [2026-05-12T15:40:05.312351] [INFO] [Print] int":15501,"presentPoint":4054,"limitPoint":0,"consumeRechargePoint":79,"consumePresentPoint":0,"consumeLimitPoint":0},"detectedGender":1,"chips":["换张参考图","换个场景","再来一张"]}} [2026-05-12T15:40:05.312513] [INFO] [Print] 【思考中】已移除占位消息 [2026-05-12T15:40:05.328196] [INFO] [Print] 【ValidPhotoService】图片判定合格,成为唯一真版底图: /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/user_valid_basemap.jpg [2026-05-12T15:40:05.330301] [INFO] [Print] 【ValidPhotoService】已清空最新生成底图槽 [2026-05-12T15:40:05.330334] [INFO] [Print] 【ValidPhotoService】发放新 photoVersion=1778571605330 [2026-05-12T15:40:05.330523] [INFO] [Print] 【积分刷新】消费数据到达,剩余总积分: 19555 [2026-05-12T15:40:05.331014] [INFO] [Print] 保存消息成功: local_manifest_1778571344123 [2026-05-12T15:40:05.331046] [INFO] [Print] 保存用户信息成功: [2026-05-12T15:40:05.331053] [INFO] [Print] - deviceUuid: IOSviPPSsV2OGFEKVsq8rMB3LlcTAto0rXkY [2026-05-12T15:40:05.331069] [INFO] [Print] - id: 180 [2026-05-12T15:40:05.331072] [INFO] [Print] - nick: 熠辰 [2026-05-12T15:40:05.331088] [INFO] [Print] - gender: 2 (female) [2026-05-12T15:40:05.331096] [INFO] [Print] - birthTime: 2013-01-01 00:00:00.000 [2026-05-12T15:40:05.331099] [INFO] [Print] - points: 19555 [2026-05-12T15:40:05.331104] [INFO] [Print] - updatedAt: 2026-05-12 15:40:05.330597 [2026-05-12T15:40:05.331243] [INFO] [Print] 删除消息成功: local_manifest_1778571344123 [2026-05-12T15:40:05.331319] [INFO] [Print] 保存消息成功: server_image_card_1778571605330 [2026-05-12T15:40:05.340742] [INFO] [Print] 【键盘】onFocusChange 被调用 hasFocus=false 当前 _inputHasFocus=false [2026-05-12T15:40:05.638730] [INFO] [Print] 图片缓存成功: /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/image_cache/09acee856bd6b435569b9c8fbe23411d_server_image_card_1778571605330.png [2026-05-12T15:40:05.638755] [INFO] [Print] 【通用聊天】图片已缓存到本地: /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/image_cache/09acee856bd6b435569b9c8fbe23411d_server_image_card_1778571605330.png [2026-05-12T15:40:05.638846] [INFO] [Print] 保存消息成功: server_image_card_1778571605330 [2026-05-12T15:40:05.638905] [INFO] [Print] 保存消息成功: server_image_card_1778571605330 [2026-05-12T15:40:05.638907] [INFO] [Print] 【ChatService】图片缓存成功: server_image_card_1778571605330 -> /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/image_cache/09acee856bd6b435569b9c8fbe23411d_server_image_card_1778571605330.png [2026-05-12T15:40:05.639143] [INFO] [Print] 保存消息成功: server_image_card_1778571605330 [2026-05-12T15:40:05.639146] [INFO] [Print] 【ChatService】UI补偿缓存成功: server_image_card_1778571605330 -> /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/image_cache/09acee856bd6b435569b9c8fbe23411d_server_image_card_1778571605330.png [2026-05-12T15:40:05.640776] [INFO] [Print] 【ValidPhotoService】已更新最新生成底图槽: /var/mobile/Containers/Data/Application/AB0040F0-F6A8-4DC2-96DD-9AC9F1C889FB/Documents/latest_generated_basemap.jpg [2026-05-12T15:40:12.175924] [INFO] [Print] 【生命周期】应用变为非活动状态 (inactive) [2026-05-12T15:40:12.175959] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.inactive, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:14.688545] [INFO] [Print] 【生命周期】应用被隐藏 (hidden) [2026-05-12T15:40:14.688566] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.hidden, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:14.688570] [INFO] [Print] 【生命周期】应用进入后台 (paused) [2026-05-12T15:40:14.688586] [INFO] [Print] 【WebSocket】应用进入后台,启动 5 分钟保活倒计时 [2026-05-12T15:40:14.688593] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.paused, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:27.879421] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778571627879","type":"ping","payload":{}} [2026-05-12T15:40:27.881330] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.hidden, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:27.881349] [INFO] [Print] 【生命周期】应用被显示 (show) [2026-05-12T15:40:27.881353] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.inactive, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:28.089705] [INFO] [Print] 【WebSocket 接收】{"msgId":"ping_1778571627879","type":"ping","payload":{}} [2026-05-12T15:40:28.184137] [INFO] [Print] 【生命周期】应用进入前台 (resumed) [2026-05-12T15:40:28.184155] [INFO] [Print] 【WebSocket】应用回到前台 [2026-05-12T15:40:28.184159] [INFO] [Print] 【WebSocket】连接正常,通知上层触发增量同步 [2026-05-12T15:40:28.184162] [INFO] [Print] 【增量同步】WebSocket 重连/前台回调触发同步 [2026-05-12T15:40:28.184164] [INFO] [Print] 【增量同步】方法被调用,开始获取用户信息... [2026-05-12T15:40:28.184176] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.resumed, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:28.184179] [INFO] [Print] 【增量同步】应用回到前台,触发同步 [2026-05-12T15:40:28.184541] [INFO] [Print] 【增量同步】uid=180, 游标 lastServerId=3399, 本地消息数=23 [2026-05-12T15:40:28.184601] [INFO] [Print] 【API请求】GET https://www.sumerumeta.cn/api/v1/chat/sync?uid=180&lastServerId=3399 [2026-05-12T15:40:28.184609] [INFO] [Print] 【请求头】{Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM} [2026-05-12T15:40:29.276721] [INFO] [Print] 【API响应】状态码: 200 [2026-05-12T15:40:29.276750] [INFO] [Print] 【响应体】{"code":200,"msg":null,"data":[{"id":3400,"type":2,"content":"https://qiniucdn.sumerumeta.cn/gen/a01020746c2cccf31131e9f4d8fc8d86.png","color":{"vibeMeaning":null,"mainColorId":null,"mainColorName":null,"mainColorHex":null,"accentColorName":null,"accentColorHex":null,"touchColorName":null,"touchColorHex":null},"imgGenTime":"丙午年 · 三月 · 申时"}]} [2026-05-12T15:40:29.276842] [INFO] [Print] 【增量同步】成功拉回 1 条遗漏记录 [2026-05-12T15:40:29.278670] [INFO] [Print] 【同步游标】lastServerId 更新为 3400 [2026-05-12T15:40:32.344107] [INFO] [Print] 【生命周期】应用变为非活动状态 (inactive) [2026-05-12T15:40:32.344134] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.inactive, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:33.238381] [INFO] [Print] 【生命周期】应用被隐藏 (hidden) [2026-05-12T15:40:33.238399] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.hidden, 当前页面状态: HomePageState.chatting [2026-05-12T15:40:33.238404] [INFO] [Print] 【生命周期】应用进入后台 (paused) [2026-05-12T15:40:33.238414] [INFO] [Print] 【WebSocket】应用进入后台,启动 5 分钟保活倒计时 [2026-05-12T15:40:33.238422] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.paused, 当前页面状态: HomePageState.chatting [2026-05-12T16:40:46.331721] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.hidden, 当前页面状态: HomePageState.chatting [2026-05-12T16:40:46.331756] [INFO] [Print] 【生命周期】应用被显示 (show) [2026-05-12T16:40:46.331759] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.inactive, 当前页面状态: HomePageState.chatting [2026-05-12T16:40:46.335760] [INFO] [Print] 【WebSocket 发送】{"msgId":"ping_1778575246335","type":"ping","payload":{}} [2026-05-12T16:40:46.336145] [INFO] [Print] 【WebSocket 健康检测】3618 秒未收到下行包,判定为假连接,主动断开 [2026-05-12T16:40:46.336158] [INFO] [Print] 【WebSocket】应用正处于后台状态,遇意外断网,阻断其重连死循环调度以节省电量保护 [2026-05-12T16:40:46.336253] [INFO] [Print] 【WebSocket】后台已超过 5 分钟,主动断开连接 [2026-05-12T16:40:46.989802] [INFO] [Print] 【生命周期】应用进入前台 (resumed) [2026-05-12T16:40:46.989812] [INFO] [Print] 【WebSocket】应用回到前台 [2026-05-12T16:40:46.989814] [INFO] [Print] 【WebSocket】检测到后台超时断开,正在自动重连... [2026-05-12T16:40:46.989819] [INFO] [Print] 【WebSocket】正在连接: wss://www.sumerumeta.cn/api/v1/chatsocket/180 [2026-05-12T16:40:46.990008] [INFO] [Print] 【生命周期-HomePage】状态变化: AppLifecycleState.resumed, 当前页面状态: HomePageState.chatting [2026-05-12T16:40:46.990012] [INFO] [Print] 【增量同步】应用回到前台,触发同步 [2026-05-12T16:40:46.990015] [INFO] [Print] 【增量同步】方法被调用,开始获取用户信息... [2026-05-12T16:40:46.990137] [INFO] [Print] 【增量同步】uid=180, 游标 lastServerId=3400, 本地消息数=23 [2026-05-12T16:40:46.990172] [INFO] [Print] 【API请求】GET https://www.sumerumeta.cn/api/v1/chat/sync?uid=180&lastServerId=3400 [2026-05-12T16:40:46.990181] [INFO] [Print] 【请求头】{Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODAiLCJpc3MiOiJ5dWFuamkiLCJpYXQiOjE3NzgwNjM2NjksImV4cCI6MTc4MDY1NTY2OX0.-pRpgh2yK5q8aZmo8FCVPejg44wl0ElbRWcePzfZByM} [2026-05-12T16:40:47.889945] [INFO] [Print] 【API响应】状态码: 200 [2026-05-12T16:40:47.889961] [INFO] [Print] 【响应体】{"code":401,"msg":"Token replaced by new login","data":null} [2026-05-12T16:40:47.889971] [INFO] [Print] 【API错误】Token 过期: Token replaced by new login [2026-05-12T16:40:47.889977] [INFO] [Print] 【AuthEventBus】触发 AuthEventType.tokenExpired 事件 (reason: Token replaced by new login) [2026-05-12T16:40:47.890028] [INFO] [Print] 【API错误】请求失败: Token replaced by new login [2026-05-12T16:40:47.890037] [INFO] [Print] 【UserService】同步消息失败: Token replaced by new login [2026-05-12T16:40:47.890052] [INFO] [Print] 【增量同步】无遗漏消息 [2026-05-12T16:40:47.890068] [INFO] [Print] 【Token过期处理】收到鉴权失效事件: AuthEventType.tokenExpired (Token replaced by new login) [2026-05-12T16:40:47.890071] [INFO] [Print] 【WebSocket】执行 reset,清空所有内存状态 [2026-05-12T16:40:47.890085] [INFO] [Print] 【Token过期处理】已断开 WebSocket [2026-05-12T16:40:47.893146] [INFO] [Print] 【Token过期处理】已清除本地 Token [2026-05-12T16:40:48.395452] [INFO] [Print] 【Token过期处理】清栈跳转到登录页 [2026-05-12T16:40:49.038728] [INFO] [Print] 【WebSocket】连接成功: 180 [2026-05-12T16:40:49.038826] [INFO] [Print] 【WebSocket】连接失败: Null check operator used on a null value [2026-05-12T16:40:49.038838] [INFO] [Print] 【WebSocket】将在 2 秒后尝试第 1 次重连... [2026-05-12T16:42:03.079815] [INFO] [Print] 【生命周期】应用变为非活动状态 (inactive) [2026-05-12T16:48:37.768277] [INFO] [Print] 【生命周期】应用被隐藏 (hidden) [2026-05-12T16:48:37.768292] [INFO] [Print] 【生命周期】应用进入后台 (paused)