背景
类似 SSH -L:用户在本地起一个端口,所有流量经过 Gateway 转发到 Worker 所在机器的指定 target。
范围
In:
- 在 CortexTerminal.Contracts.Streaming 新增 tunnel 帧:
TunnelOpenFrame / TunnelDataFrame / TunnelCloseFrame / TunnelErrorFrame
- 每个 tunnel 连接用唯一 stream id 区分,复用现有 SignalR 连接
- Worker 收到
TunnelOpenFrame{targetHost, targetPort} 后建立 TCP 连接,把读到的字节流回 TunnelDataFrame
- Worker 收到
TunnelDataFrame 写入 TCP,TunnelCloseFrame 关闭 TCP
- TCP 任一端关闭立即发 close 帧,不允许静默泄漏
- 错误(连接拒绝 / DNS 失败 / 超时)回
TunnelErrorFrame 给客户端
Out:
验收
- 单元测试覆盖 stream id 复用、close 帧可靠性
- 集成测试:Worker 能把字节流原样打到本机 echo server
背景
类似 SSH
-L:用户在本地起一个端口,所有流量经过 Gateway 转发到 Worker 所在机器的指定 target。范围
In:
TunnelOpenFrame/TunnelDataFrame/TunnelCloseFrame/TunnelErrorFrameTunnelOpenFrame{targetHost, targetPort}后建立 TCP 连接,把读到的字节流回TunnelDataFrameTunnelDataFrame写入 TCP,TunnelCloseFrame关闭 TCPTunnelErrorFrame给客户端Out:
验收