Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

cli 模块 — transports 子目录

路径: src/cli/transports/ 功能: 网络传输层 — WebSocket/SSE/HTTP 传输协议实现


文件清单

文件行数说明
HybridTransport.ts283混合传输(WS 读 + HTTP POST 写)
WebSocketTransport.ts~200WebSocket 传输基类
SSETransport.ts~200Server-Sent Events 传输
SerialBatchEventUploader.ts~150批量事件上传器
WorkerStateUploader.ts~100Worker 状态上传
ccrClient.ts~200CCR v2 客户端
transportUtils.ts~100传输工具函数

HybridTransport — 核心传输

┌─────────────────────────────────────┐
│          HybridTransport            │
├─────────────────────────────────────┤
│  读取: WebSocket (实时推送,低延迟)   │
│  写入: HTTP POST (批量上传,可靠)     │
├─────────────────────────────────────┤
│  SerialBatchEventUploader           │
│  ├── 100ms 缓冲窗口                 │
│  ├── 合并 stream_event              │
│  └── 指数退避重试                    │
├─────────────────────────────────────┤
│  超时: POST 15s / 关闭优雅期 3s      │
└─────────────────────────────────────┘

设计原因

  • WebSocket 适合实时读取(低延迟推送)
  • HTTP POST 适合可靠写入(自动重试、批量合并)
  • 混合模式兼顾实时性和可靠性

ccrClient.ts — CCR v2 协议

CCR(Claude Code Remote)v2 客户端,处理远程会话的创建、令牌刷新和消息传输。