💻 操作系统
macOS (Apple Silicon, arm64)
📱 QQNT 版本
6.9.95-48517
📦 QCE 版本
6.2.8(NapCat v4.18.19,官方完整包 NapCat-QCE-macOS-arm64)
📥 安装方式
官方发布包(Shell 完整包),运行 ./start-standalone.sh
🤔 发生了什么?
独立模式(standalone)下,Web 界面能正常打开、也能浏览已导出的记录,但任何需要实时 QQ 数据的页面都会报同一个错误:
bridge 传输错误: error sending request for url (http://127.0.0.1:40654/rpc)
这个措辞把**「设计上就没有 bridge」说成了「bridge 传输失败」**,用户无法区分二者,会一直去找网络/端口/代理的问题。
🔄 复现步骤
- 运行
./start-standalone.sh
- 浏览器打开 http://localhost:40653/qce 并用令牌登录
- 打开「群聊」「好友」「最近联系人」任一页面,或点击导出新记录
✨ 期望结果
独立模式本来就不提供实时数据(README.txt 也写了「不支持导出新的聊天记录」),这是预期行为,但提示应该诚实:
- 后端返回一个专门的区分性错误(例如
bridge_unavailable / standalone_mode),而不是通用的「传输错误」;
- 前端据此给出明确文案,例如「当前为独立模式,无法获取实时数据。请改用
./launcher-user.sh 完整模式并登录 QQ」;
- 更进一步:独立模式下把依赖实时数据的入口禁用或置灰,而不是让用户点了才报错。
📋 错误日志
复现请求(已带令牌):
GET /api/groups
{"success":false,"error":{"type":"API_ERROR",
"message":"bridge 传输错误: error sending request for url (http://127.0.0.1:40654/rpc)",
"context":{"code":"GET_GROUPS_FAILED", ...}}}
GET /api/system/status
{"success":true,"data":{"online":false, ...}}
logs/qce-runtime.log 里的相关行 —— 注意第 3 行看起来像是「bridge 已就绪」,实际没有任何进程在监听:
[qce-server] INFO [QCE] Starting QQ Chat Exporter Server v6.2.8 (Rust)
[qce-server] INFO [QCE] NapCat bridge: http://127.0.0.1:40654
[qce-server] INFO [QCE] HTTP server listening: http://localhost:40653
验证:lsof -nP -iTCP:40654 -sTCP:LISTEN -t 无输出。
🔍 已排除的原因(供参考,避免重复排查)
不是代理问题。 本机 HTTP_PROXY=http://127.0.0.1:61678 且未设 NO_PROXY,我起初怀疑 reqwest 把回环地址也送进了代理。对照实验证明不会:在 40654 起一个假 bridge,以同样的环境(HTTP_PROXY 存在、无 NO_PROXY)启动独立模式后请求直达 40654 并成功返回:
环境: HTTP_PROXY=http://127.0.0.1:61678(无 NO_PROXY)
假 bridge 收到: POST /rpc {"id":1,"method":"GroupApi.getGroups","params":[false]}
GET /api/groups → {"success":true,"data":{"groups":[], ...}}
所以根因单纯是独立模式没有 bridge:qce-standalone.mjs 只 spawn 了 qce-server,未设置 QCE_BRIDGE_ENDPOINT,Rust 端回落到默认的 40654;而 40654 只有完整模式下由 plugins/qq-chat-exporter/runtime/rustBridge.mjs 的 createNapCatBridge() 在 NapCat 进程内创建。
📎 日志和截图确认
✅ 检查清单
💻 操作系统
macOS (Apple Silicon, arm64)
📱 QQNT 版本
6.9.95-48517
📦 QCE 版本
6.2.8(NapCat v4.18.19,官方完整包 NapCat-QCE-macOS-arm64)
📥 安装方式
官方发布包(Shell 完整包),运行
./start-standalone.sh🤔 发生了什么?
独立模式(standalone)下,Web 界面能正常打开、也能浏览已导出的记录,但任何需要实时 QQ 数据的页面都会报同一个错误:
这个措辞把**「设计上就没有 bridge」说成了「bridge 传输失败」**,用户无法区分二者,会一直去找网络/端口/代理的问题。
🔄 复现步骤
./start-standalone.sh✨ 期望结果
独立模式本来就不提供实时数据(
README.txt也写了「不支持导出新的聊天记录」),这是预期行为,但提示应该诚实:bridge_unavailable/standalone_mode),而不是通用的「传输错误」;./launcher-user.sh完整模式并登录 QQ」;📋 错误日志
复现请求(已带令牌):
logs/qce-runtime.log里的相关行 —— 注意第 3 行看起来像是「bridge 已就绪」,实际没有任何进程在监听:验证:
lsof -nP -iTCP:40654 -sTCP:LISTEN -t无输出。🔍 已排除的原因(供参考,避免重复排查)
不是代理问题。 本机
HTTP_PROXY=http://127.0.0.1:61678且未设NO_PROXY,我起初怀疑 reqwest 把回环地址也送进了代理。对照实验证明不会:在 40654 起一个假 bridge,以同样的环境(HTTP_PROXY存在、无NO_PROXY)启动独立模式后请求直达 40654 并成功返回:所以根因单纯是独立模式没有 bridge:
qce-standalone.mjs只 spawn 了qce-server,未设置QCE_BRIDGE_ENDPOINT,Rust 端回落到默认的 40654;而 40654 只有完整模式下由plugins/qq-chat-exporter/runtime/rustBridge.mjs的createNapCatBridge()在 NapCat 进程内创建。📎 日志和截图确认
✅ 检查清单