Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Forwarder ¶
type Forwarder interface {
// UpdateTarget 原子替换目标(nil 表示目标不可用),仅影响新连接/新会话。
UpdateTarget(t *Target)
SetCloseOnSwitch(v bool)
// ActiveConns TCP 为活跃连接数,UDP 为活跃会话数。
ActiveConns() int64
Close()
}
Forwarder 是数据面抽象:TCP/UDP 均实现,供规则管理器统一编排。
type TCPForwarder ¶
type TCPForwarder struct {
// contains filtered or unexported fields
}
TCPForwarder 监听宿主机端口,把每个连接代理到当前目标(可热更新)。
func NewTCPForwarder ¶
func NewTCPForwarder(listen string) (*TCPForwarder, error)
func (*TCPForwarder) ActiveConns ¶
func (f *TCPForwarder) ActiveConns() int64
func (*TCPForwarder) Close ¶
func (f *TCPForwarder) Close()
func (*TCPForwarder) SetCloseOnSwitch ¶
func (f *TCPForwarder) SetCloseOnSwitch(v bool)
func (*TCPForwarder) UpdateTarget ¶
func (f *TCPForwarder) UpdateTarget(t *Target)
UpdateTarget 原子替换目标,仅影响新连接;closeOnSwitch 开启时目标变化会断开存量连接。
type UDPForwarder ¶
type UDPForwarder struct {
// contains filtered or unexported fields
}
UDPForwarder 按客户端源地址维护会话表,把每个会话代理到当前目标。
func NewUDPForwarder ¶
func NewUDPForwarder(listen string, idleTimeout time.Duration) (*UDPForwarder, error)
func (*UDPForwarder) ActiveConns ¶
func (f *UDPForwarder) ActiveConns() int64
func (*UDPForwarder) Close ¶
func (f *UDPForwarder) Close()
func (*UDPForwarder) SetCloseOnSwitch ¶
func (f *UDPForwarder) SetCloseOnSwitch(v bool)
func (*UDPForwarder) SetIdleTimeout ¶
func (f *UDPForwarder) SetIdleTimeout(d time.Duration)
func (*UDPForwarder) UpdateTarget ¶
func (f *UDPForwarder) UpdateTarget(t *Target)
UpdateTarget 热更新目标;closeOnSwitch 开启时立即清空会话表, 否则旧会话在该客户端下次发包时迁移到新目标(后端方向保持到被替换或空闲回收)。
Click to show internal directories.
Click to hide internal directories.