Skip to content

feat(v2): Port Forwarding — Worker 本地隧道协议 #9

Description

@monster-echo

背景

类似 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions