Documentation
¶
Index ¶
- Constants
- func GetIDFromSeed(seedStr string) (string, error)
- func SetLogger(outerLog *logrus.Logger)
- type Message
- type MsgType
- type P2PBaseNode
- func (baseNode *P2PBaseNode) BroadcastMsg(msgData string, needsAck bool) error
- func (baseNode *P2PBaseNode) GetHandleRemoteStream() network.StreamHandler
- func (baseNode *P2PBaseNode) MsgChan() <-chan Message
- func (baseNode *P2PBaseNode) SendMsg(targetName string, msgData string, needsAck bool) error
- type P2pConnection
- type P2pConnectionManager
- func (manager *P2pConnectionManager) ConnectToPeer(targetName string) error
- func (manager *P2pConnectionManager) GetConnection(targetName string) (*P2pConnection, error)
- func (manager *P2pConnectionManager) GetRemoteConnection(remotePeerId peer.ID) (*P2pConnection, error)
- func (manager *P2pConnectionManager) HandleStream(stream network.Stream) *P2pConnection
- func (manager *P2pConnectionManager) NewP2PConnection(peerId peer.ID, targetPeerAddr string, stream network.Stream) *P2pConnection
Constants ¶
View Source
const (
ProtocolID = "/latency-p2p/1.0.0"
)
Variables ¶
This section is empty.
Functions ¶
func GetIDFromSeed ¶
Types ¶
type Message ¶
type Message struct {
MsgId string `json:"msg_id"`
AckMsgId string `json:"ack_msg_id"`
FromPeerId peer.ID `json:"from_peer_id"`
ToPeerId peer.ID `json:"to_peer_id"`
FromPeerName string `json:"from_peer_name"`
ToPeerName string `json:"to_peer_name"`
MsgType MsgType `json:"msg_type"`
MsgData string `json:"msg"`
TimestampNano int64 `json:"timestamp_nano"` // 纳秒
NeedsAck bool `json:"needs_ack"`
}
func NewAckMessage ¶
type P2PBaseNode ¶
type P2PBaseNode struct {
Host host.Host
PeerName string //名称
ConnectionManager *P2pConnectionManager
// contains filtered or unexported fields
}
func NewP2PBaseNode ¶
func (*P2PBaseNode) BroadcastMsg ¶
func (baseNode *P2PBaseNode) BroadcastMsg(msgData string, needsAck bool) error
func (*P2PBaseNode) GetHandleRemoteStream ¶
func (baseNode *P2PBaseNode) GetHandleRemoteStream() network.StreamHandler
获取流处理器
func (*P2PBaseNode) MsgChan ¶
func (baseNode *P2PBaseNode) MsgChan() <-chan Message
type P2pConnection ¶
type P2pConnectionManager ¶
type P2pConnectionManager struct {
BaseNode *P2PBaseNode
TargetPeerAddrMap map[string]string // name -> full addr
ThisStreamMap map[string]*P2pConnection // full addr -> stream
RemoteStreamMap map[string]*P2pConnection // remote peerId -> stream
}
管理p2p连接的链接池
func NewP2pConnectionManager ¶
func NewP2pConnectionManager(baseNode *P2PBaseNode, targetPeerAddrs map[string]string) *P2pConnectionManager
创建连接管理器
func (*P2pConnectionManager) ConnectToPeer ¶
func (manager *P2pConnectionManager) ConnectToPeer(targetName string) error
连接到目标节点 并建立新链接
func (*P2pConnectionManager) GetConnection ¶
func (manager *P2pConnectionManager) GetConnection(targetName string) (*P2pConnection, error)
获取目标节点的链接
func (*P2pConnectionManager) GetRemoteConnection ¶
func (manager *P2pConnectionManager) GetRemoteConnection(remotePeerId peer.ID) (*P2pConnection, error)
获取远程节点的链接
func (*P2pConnectionManager) HandleStream ¶
func (manager *P2pConnectionManager) HandleStream(stream network.Stream) *P2pConnection
捕获远程节点的链接
func (*P2pConnectionManager) NewP2PConnection ¶
func (manager *P2pConnectionManager) NewP2PConnection(peerId peer.ID, targetPeerAddr string, stream network.Stream) *P2pConnection
Click to show internal directories.
Click to hide internal directories.