Documentation ¶
Overview ¶
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
Index ¶
- Constants
- type Controller
- func (c *Controller) Handler(smsg []byte, p *p2p.Peer, asymmetric bool, keyid string) error
- func (c *Controller) IsActive(name string) bool
- func (c *Controller) NewNotifier(name string, threshold int, updateC <-chan []byte) (func(), error)
- func (c *Controller) RemoveNotifier(name string) error
- func (c *Controller) Subscribe(name string, pubkey *ecdsa.PublicKey, address pss.PssAddress, ...) error
- func (c *Controller) Unsubscribe(name string) error
- type Msg
Constants ¶
const ( //从请求者发送到更新者以请求开始通知 MsgCodeStart = iota //从更新程序发送到请求程序,包含一个通知和一个新的符号键来替换旧的 MsgCodeNotifyWithKey //从更新程序发送到请求程序,包含一个通知 MsgCodeNotify //从请求程序发送到更新程序以请求停止通知(当前未使用) MsgCodeStop MsgCodeMax )
const (
DefaultAddressLength = 1
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
控制器是控制、添加和删除通知服务和订阅的接口。
func (*Controller) IsActive ¶
func (c *Controller) IsActive(name string) bool
IsActive用于检查是否存在指定ID字符串的通知服务 如果存在则返回true,否则返回false
func (*Controller) NewNotifier ¶
func (c *Controller) NewNotifier(name string, threshold int, updateC <-chan []byte) (func(), error)
通知服务提供程序使用NewNotifier创建新的通知服务 它将名称作为资源的标识符,一个阈值指示订阅地址bin的粒度。 然后,它启动一个事件循环,该循环监听所提供的更新通道,并在通道接收时执行通知。 如果通知程序已在名称上注册,则失败 func(c*controller)newnotifier(name string,threshold int,contentfunc func(string)([]byte,error))错误
func (*Controller) RemoveNotifier ¶
func (c *Controller) RemoveNotifier(name string) error
removenotifier用于停止通知服务。 它取消了侦听通知提供程序的更新通道的事件循环
func (*Controller) Subscribe ¶
func (c *Controller) Subscribe(name string, pubkey *ecdsa.PublicKey, address pss.PssAddress, handler func(string, []byte) error) error
客户端使用订阅从通知服务提供程序请求通知 它将创建一个msgcodestart消息,并使用其公钥和路由地址不对称地发送给提供程序。 handler函数是一个回调函数,当收到通知时将调用该回调函数。 如果无法发送请求PSS或无法序列化更新消息,则失败
func (*Controller) Unsubscribe ¶
func (c *Controller) Unsubscribe(name string) error
取消订阅,也许不足为奇,会取消订阅的效果。 如果订阅不存在、无法发送请求PSS或无法序列化更新消息,则失败
type Msg ¶
当代码为msgcodestart时,有效负载为地址 当代码为msgcodenotifywithkey时,有效负载为notification symkey 当代码为msgcodenotify时,有效负载为notification 当代码为msgcodestop时,有效负载为地址
func NewMsgFromPayload ¶
newmsgFromPayload将序列化消息负载解码为新的通知消息对象