写点什么

长安链源码分析之网络模块 net-liquid(7)

作者:
  • 2022-10-19
    湖南
  • 本文字数:997 字

    阅读完需:约 1 分钟

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star


notiffee 属于 Host 包下

定义了一些通知回调的函数,

然后定义了一个实现结构体,实现结构体里面定义了函数,用来提供给使用方设置进去,支持对应的回调函数

// Notifiee contains functions for host notifying call back.//Notifiee  包含了host通知的回调接口type Notifiee interface {	// PeerConnected will be invoked when a new connection established.	//当节点建立连接时触发	PeerConnected(pid peer.ID)	// PeerDisconnected will be invoked when a connection disconnected.	//当节点失去连接时触发	PeerDisconnected(pid peer.ID)	// PeerProtocolSupported will be invoked when a peer support a new protocol.	//当节点支持一个协议的时候触发	PeerProtocolSupported(protocolID protocol.ID, pid peer.ID)	// PeerProtocolUnsupported will be invoked when a peer cancel supporting a new protocol.	//当节点注销一个协议的时候触发	PeerProtocolUnsupported(protocolID protocol.ID, pid peer.ID)}
var _ Notifiee = (*NotifieeBundle)(nil)
// NotifieeBundle is a bundle implementation of Notifee interface.//NotifieeBundle 是Notifee 接口的实现type NotifieeBundle struct { PeerConnectedFunc func(peer.ID) PeerDisconnectedFunc func(peer.ID) PeerProtocolSupportedFunc func(protocolID protocol.ID, pid peer.ID) PeerProtocolUnsupportedFunc func(protocolID protocol.ID, pid peer.ID)}
func (n *NotifieeBundle) PeerConnected(pid peer.ID) { if n.PeerConnectedFunc != nil { n.PeerConnectedFunc(pid) }}
func (n *NotifieeBundle) PeerDisconnected(pid peer.ID) { if n.PeerDisconnectedFunc != nil { n.PeerDisconnectedFunc(pid) }}
func (n *NotifieeBundle) PeerProtocolSupported(protocolID protocol.ID, pid peer.ID) { if n.PeerProtocolSupportedFunc != nil { n.PeerProtocolSupportedFunc(protocolID, pid) }}
func (n *NotifieeBundle) PeerProtocolUnsupported(protocolID protocol.ID, pid peer.ID) { if n.PeerProtocolUnsupportedFunc != nil { n.PeerProtocolUnsupportedFunc(protocolID, pid) }}
复制代码


用户头像

关注

还未添加个人签名 2018-05-04 加入

还未添加个人简介

评论

发布
暂无评论
长安链源码分析之网络模块 net-liquid(7)_李_InfoQ写作社区