Documentation ¶
Index ¶
- type Listener
- type Listeners
- type P2P
- func (p2p *P2P) CheckProtoExists(proto protocol.ID) bool
- func (p2p *P2P) ForwardLocal(ctx context.Context, peer peer.ID, proto protocol.ID, bindAddr ma.Multiaddr) (Listener, error)
- func (p2p *P2P) ForwardRemote(ctx context.Context, proto protocol.ID, addr ma.Multiaddr, reportRemote bool) (Listener, error)
- type Stream
- type StreamRegistry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Listener ¶
type Listener interface { Protocol() protocol.ID // 获取协议ID的方法 ListenAddress() ma.Multiaddr // 获取监听地址的方法 TargetAddress() ma.Multiaddr // 获取目标地址的方法 // contains filtered or unexported methods }
Listener 接口定义了监听连接并将其代理到目标的功能
type Listeners ¶
type Listeners struct { sync.RWMutex // 读写锁,用于并发安全 Listeners map[protocol.ID]Listener // 存储协议ID和Listener映射关系的字典 }
Listeners 管理一组 Listener 实现,检查冲突并可选择性地分派连接
type P2P ¶
type P2P struct { ListenersLocal *Listeners // 本地监听器管理 ListenersP2P *Listeners // p2p监听器管理 Streams *StreamRegistry // 流注册表 // contains filtered or unexported fields }
P2P 结构体包含当前运行的流和监听器的信息
func New ¶
New 创建一个新的 P2P 结构体实例 参数:
- identity: peer.ID,对等节点ID
- peerHost: p2phost.Host,libp2p主机实例
- peerstore: pstore.Peerstore,对等节点存储实例
返回:*P2P,指向P2P实例的指针
func (*P2P) CheckProtoExists ¶
CheckProtoExists 检查是否已注册协议处理程序 参数:
- proto: protocol.ID,协议ID
返回:bool,返回是否存在协议处理程序
func (*P2P) ForwardLocal ¶
func (p2p *P2P) ForwardLocal(ctx context.Context, peer peer.ID, proto protocol.ID, bindAddr ma.Multiaddr) (Listener, error)
ForwardLocal 创建一个新的P2P流到远程监听器 参数:
- ctx: context.Context,上下文用于控制生命周期
- peer: peer.ID,对等节点ID
- proto: protocol.ID,协议ID
- bindAddr: ma.Multiaddr,绑定地址
返回:
- Listener,返回监听器接口
- error,返回可能发生的错误
func (*P2P) ForwardRemote ¶
func (p2p *P2P) ForwardRemote(ctx context.Context, proto protocol.ID, addr ma.Multiaddr, reportRemote bool) (Listener, error)
ForwardRemote 创建一个新的p2p监听器 参数:
- ctx: context.Context,上下文用于控制生命周期
- proto: protocol.ID,协议ID
- addr: ma.Multiaddr,目标地址
- reportRemote: bool,是否报告远程对等节点
返回:
- Listener,返回监听器接口
- error,返回可能发生的错误
type Stream ¶
type Stream struct { Protocol protocol.ID // 协议ID OriginAddr ma.Multiaddr // 原地址 TargetAddr ma.Multiaddr // 目标地址 Local manet.Conn // 本地连接 Remote net.Stream // 远程流 Registry *StreamRegistry // 流注册表 // contains filtered or unexported fields }
Stream 结构体包含活动的传入和传出p2p流的信息
type StreamRegistry ¶
type StreamRegistry struct { sync.Mutex // 互斥锁,用于并发控制 Streams map[uint64]*Stream // 存储流ID和Stream结构体的映射 ifconnmgr.ConnManager // 连接管理器接口 // contains filtered or unexported fields }
StreamRegistry 是一组活跃的传入和传出的协议应用流
func (*StreamRegistry) Close ¶
func (r *StreamRegistry) Close(s *Stream)
Close 关闭流的端点并注销它 参数:
- s: *Stream,待关闭的流
func (*StreamRegistry) Deregister ¶
func (r *StreamRegistry) Deregister(streamID uint64)
Deregister 从注册表中注销一个流 参数:
- streamID: uint64,待注销的流ID
func (*StreamRegistry) Register ¶
func (r *StreamRegistry) Register(streamInfo *Stream)
Register 在注册表中注册一个流 参数:
- streamInfo: *Stream,待注册的流信息
func (*StreamRegistry) Reset ¶
func (r *StreamRegistry) Reset(s *Stream)
Reset 关闭流的端点并注销它 参数:
- s: *Stream,待重置的流
Click to show internal directories.
Click to hide internal directories.