Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrMuxClosed = errors.New("event: mux closed")
在关闭的TypeMux上发布时返回ErrMuxClosed。
Functions ¶
This section is empty.
Types ¶
type ChainEvent ¶
type ChainHeadEvent ¶
type ChainSideEvent ¶
type Feed ¶
type Feed struct {
// contains filtered or unexported fields
}
Feed实现了一对多订阅,其中事件的载体是一个频道
func (*Feed) Subscribe ¶
func (f *Feed) Subscribe(channel interface{}) Subscription
Subscribe向提要添加频道。在取消订阅之前,将来的发送将在通道上传递。添加的所有通道必须具有相同的元素类型。 通道应具有足够的缓冲空间,以避免阻塞其他订阅者。慢速订阅服务器不会被丢弃
type NewMinedBlockEvent ¶
导入块后,将发布NewMinedBlockEvent。
type RemovedLogsEvent ¶
RemovedLogseEvent在发生reorg时发布
type Subscription ¶
type Subscription interface { Err() <-chan error //返回错误通道 Unsubscribe() //取消发送事件,关闭错误通道 }
订阅表示事件流。事件的载体通常是一个通道,但不是接口的一部分。 订阅在建立时可能会失败。通过错误通道报告故障。如果订阅存在问题(例如,传递事件的网络连接已关闭),它将收到一个值。将只发送一个值。 订阅成功结束时(即事件源关闭时),错误通道关闭。当调用Unsubscribe时,它也会关闭。 Unsubscribe方法取消发送事件。在任何情况下,您都必须调用Unsubscribe,以确保释放与订阅相关的资源。它可以被调用任意次数。
func NewSubscription ¶
func NewSubscription(producer func(<-chan struct{}) error) Subscription
NewSubscription在新的goroutine中运行生产者函数作为订阅。 当调用Unsubscribe时,提供给制作人的频道关闭。如果fn返回错误,则会在订阅的错误通道上发送。
type SubscriptionScope ¶
type SubscriptionScope struct {
// contains filtered or unexported fields
}
SubscriptionScope提供了一种功能,可以一次取消订阅多个订阅。 对于处理多个订阅的代码,可以使用一个作用域通过单个调用方便地取消所有订阅。该示例演示了在大型程序中的典型用法。 零值已准备好使用。
func (*SubscriptionScope) Close ¶
func (sc *SubscriptionScope) Close()
Close calls取消对所有跟踪订阅的订阅,并阻止进一步添加到跟踪集。关闭后跟踪的调用返回nil。
func (*SubscriptionScope) Track ¶
func (sc *SubscriptionScope) Track(s Subscription) Subscription
Track开始跟踪订阅。如果作用域已关闭,Track将返回nil。返回的订阅是包装。取消订阅包装将其从范围中删除。
type TypeMux ¶
type TypeMux struct {
// contains filtered or unexported fields
}
TypeMux将事件发送给注册的接收器。 可以注册接收器来处理特定类型的事件。 停止多路复用器后调用的任何操作都将返回ErrMuxClosed。 零值已准备好使用。不推荐:使用提要
func (*TypeMux) Subscribe ¶
func (mux *TypeMux) Subscribe(types ...interface{}) *TypeMuxSubscription
Subscribe为给定类型的事件创建订阅。订阅的频道在取消订阅或多路复用器关闭时关闭。
type TypeMuxEvent ¶
TypeMuxEvent是推送到订阅者的带有时间标签的通知。
type TypeMuxSubscription ¶
type TypeMuxSubscription struct {
// contains filtered or unexported fields
}
TypeMux订阅是通过TypeMux建立的订阅。
func (*TypeMuxSubscription) Chan ¶
func (s *TypeMuxSubscription) Chan() <-chan *TypeMuxEvent
func (*TypeMuxSubscription) Unsubscribe ¶
func (s *TypeMuxSubscription) Unsubscribe()