notify

package
v0.0.0-...-39cdb81 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2019 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620

Index

Constants

View Source
const (
	//从请求者发送到更新者以请求开始通知
	MsgCodeStart = iota

	//从更新程序发送到请求程序,包含一个通知和一个新的符号键来替换旧的
	MsgCodeNotifyWithKey

	//从更新程序发送到请求程序,包含一个通知
	MsgCodeNotify

	//从请求程序发送到更新程序以请求停止通知(当前未使用)
	MsgCodeStop
	MsgCodeMax
)
View Source
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 NewController

func NewController(ps *pss.Pss) *Controller

NewController创建新的控制器对象

func (*Controller) Handler

func (c *Controller) Handler(smsg []byte, p *p2p.Peer, asymmetric bool, keyid string) error

handler是用于处理通知服务消息的PSS主题处理程序 它应该在PSS中注册到任何提供的通知服务和使用该服务的客户机。

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

type Msg struct {
	Code    byte
	Name    []byte
	Payload []byte
	// contains filtered or unexported fields
}

当代码为msgcodestart时,有效负载为地址 当代码为msgcodenotifywithkey时,有效负载为notification symkey 当代码为msgcodenotify时,有效负载为notification 当代码为msgcodestop时,有效负载为地址

func NewMsg

func NewMsg(code byte, name string, payload []byte) *Msg

newmsg创建新的通知消息对象

func NewMsgFromPayload

func NewMsgFromPayload(payload []byte) (*Msg, error)

newmsgFromPayload将序列化消息负载解码为新的通知消息对象

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL