Windows + Edge 环境使用反馈:Proxy 稳定性 / API 功能补充 / 路径兼容
Author: liulinxi607Created Jun 10, 2026Updated Jun 21, 2026
环境
- OS: Windows 11 + bash (MSYS2)
- Node: v25.9.0
- 浏览器: Microsoft Edge (端口 9222,远程调试已开启)
使用场景
用 CDP 抓取微信公众号文章内容,最终目标是打印 PDF / 截图存档。过程中反复遇到以下问题。
1. CDP Proxy 连接稳定性
1.1 进程互斥
- pkill -f cdp-proxy.mjs 在 Windows bash 下无效,旧进程继续占用 3456 端口
- 新 proxy 检测到端口被占直接退出,不尝试接管或替换
- 最终只能 taskkill //F //IM node.exe 暴力全杀(会误杀其它 node 进程)
建议: 新 proxy 启动时检测旧进程 PID,主动 kill 后接管端口;或支持 --force 参数。
1.2 断线后无法自愈
- 浏览器 WebSocket 断开后,proxy 循环重连全部报连接失败
- 只能手动重启整条链路
建议: 断线后清除端口缓存重新发现,或增加指数退避重试。
1.3 --browser 每次都要传
- config.env 偏好未正确持久化,每次都需重新指定
2. API 功能缺失
2.1 缺少 printToPDF 端点
CDP Page.printToPDF 是获取完整页面最可靠的方式(全页、文字可选、文件小),当前 proxy 未暴露。
建议: 新增 /pdf?target=ID&file=... 端点。
2.2 Screenshot 不支持全页
/screenshot 无 captureBeyondViewport。大页面只截视口。clip+全页参数时直接超时(1280×4334px 等 90s+)。
建议: 支持 &full=1,自动获取 layout metrics + captureBeyondViewport。
2.3 CDP 命令超时硬编码
sendCDP 超时 30000ms 无法自定义,printToPDF/全页截图等慢操作不够用。
3. 路径兼容
bash /tmp 和 Node.js /tmp 解析到不同目录(C:/Users/alin/AppData/Local/Temp vs C:/tmp),文件互不可见。
建议: 文件路径使用 os.tmpdir() 统一。
4. 总结
以上问题导致实际操作中绕过 proxy 直接裸连 CDP WebSocket 反而更可靠。Proxy 方向很好,希望更稳定。
Source: eze-is/web-access