listener

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event string

Event represents the type of authentication event | 认证事件类型

const (
	// EventLogin fired when a user logs in | 用户登录事件
	EventLogin Event = "login"

	// EventLogout fired when a user logs out | 用户登出事件
	EventLogout Event = "logout"

	// EventKickout fired when a user is forcibly logged out | 用户被踢下线事件
	EventKickout Event = "kickout"

	// EventDisable fired when an account is disabled | 账号被禁用事件
	EventDisable Event = "disable"

	// EventUntie fired when an account is re-enabled | 账号解禁事件
	EventUntie Event = "untie"

	// EventRenew fired when a token is renewed | Token续期事件
	EventRenew Event = "renew"

	// EventCreateSession fired when a new session is created | Session创建事件
	EventCreateSession Event = "createSession"

	// EventDestroySession fired when a session is destroyed | Session销毁事件
	EventDestroySession Event = "destroySession"

	// EventPermissionCheck fired when a permission check is performed | 权限检查事件
	EventPermissionCheck Event = "permissionCheck"

	// EventRoleCheck fired when a role check is performed | 角色检查事件
	EventRoleCheck Event = "roleCheck"

	// EventAll is a wildcard event that matches all events | 通配符事件(匹配所有事件)
	EventAll Event = "*"
)

type EventData

type EventData struct {
	Event     Event          // Event type | 事件类型
	LoginID   string         // User login ID | 用户登录ID
	Device    string         // Device identifier | 设备标识
	Token     string         // Authentication token | 认证Token
	Extra     map[string]any // Additional custom data | 额外的自定义数据
	Timestamp int64          // Unix timestamp when event was triggered | 事件触发的Unix时间戳
}

EventData contains information about a triggered event | 事件数据,包含触发事件的相关信息

func (*EventData) String

func (e *EventData) String() string

String returns a string representation of the event data | 返回事件数据的字符串表示

type EventFilter

type EventFilter func(data *EventData) bool

EventFilter is a function that decides whether an event should be processed | 事件过滤器,决定事件是否应该被处理

type EventStats

type EventStats struct {
	TotalTriggered int64               // Total number of events triggered | 触发的事件总数
	EventCounts    map[Event]int64     // Count per event type | 各类型事件的计数
	LastTriggered  map[Event]time.Time // Last trigger time per event | 各类型事件的最后触发时间
}

EventStats contains statistics about event processing | 事件统计信息

type Listener

type Listener interface {
	// OnEvent is called when an event is triggered | 当事件触发时调用
	// The listener should not panic; any panic will be recovered by the event manager | 监听器不应该panic,任何panic都会被事件管理器恢复
	OnEvent(data *EventData)
}

Listener is the interface for event listeners | 事件监听器接口

type ListenerConfig

type ListenerConfig struct {
	Async    bool   // If true, listener runs asynchronously | 如果为true,监听器异步运行
	Priority int    // Higher priority listeners are called first (default: 0) | 优先级越高越先执行(默认:0)
	ID       string // Unique identifier for this listener (for unregistering) | 监听器唯一标识(用于注销)
}

ListenerConfig holds configuration for a registered listener | 监听器配置

type ListenerFunc

type ListenerFunc func(data *EventData)

ListenerFunc is a function adapter that implements the Listener interface | 函数适配器,实现Listener接口

func (ListenerFunc) OnEvent

func (f ListenerFunc) OnEvent(data *EventData)

OnEvent implements the Listener interface | 实现Listener接口

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages event listeners and dispatches events | 事件管理器,管理监听器并分发事件

func NewManager

func NewManager() *Manager

NewManager creates a new event manager | 创建新的事件管理器

func (*Manager) AddFilter

func (m *Manager) AddFilter(filter EventFilter)

AddFilter adds a global event filter | 添加全局事件过滤器

func (*Manager) Clear

func (m *Manager) Clear()

Clear removes all listeners

func (*Manager) ClearEvent

func (m *Manager) ClearEvent(event Event)

ClearEvent removes all listeners for a specific event

func (*Manager) ClearFilters

func (m *Manager) ClearFilters()

ClearFilters removes all event filters | 清除所有事件过滤器

func (*Manager) Count

func (m *Manager) Count() int

Count returns the total number of registered listeners

func (*Manager) CountForEvent

func (m *Manager) CountForEvent(event Event) int

CountForEvent returns the number of listeners for a specific event

func (*Manager) DisableEvent

func (m *Manager) DisableEvent(events ...Event)

DisableEvent disables specific events | 禁用特定事件

func (*Manager) EnableEvent

func (m *Manager) EnableEvent(events ...Event)

EnableEvent enables specific events (disables all others) | 启用特定事件(禁用其他所有事件) Call with no arguments to enable all events | 不传参数时启用所有事件

func (*Manager) EnableStats

func (m *Manager) EnableStats(enable bool)

EnableStats enables event statistics collection | 启用事件统计

func (*Manager) GetAllEvents

func (m *Manager) GetAllEvents() []Event

GetAllEvents returns all events that have registered listeners | 获取所有已注册监听器的事件

func (*Manager) GetListenerIDs

func (m *Manager) GetListenerIDs(event Event) []string

GetListenerIDs returns all listener IDs for a specific event | 获取指定事件的所有监听器ID

func (*Manager) GetStats

func (m *Manager) GetStats() EventStats

GetStats returns a copy of event statistics | 获取事件统计信息副本

func (*Manager) HasListeners

func (m *Manager) HasListeners(event Event) bool

HasListeners checks if there are any listeners for a specific event | 检查指定事件是否有监听器

func (*Manager) IsEventEnabled

func (m *Manager) IsEventEnabled(event Event) bool

IsEventEnabled checks if an event is enabled

func (*Manager) Register

func (m *Manager) Register(event Event, listener Listener) string

Register registers a listener for an event with default configuration

func (*Manager) RegisterFunc

func (m *Manager) RegisterFunc(event Event, handler func(data *EventData)) string

RegisterFunc registers a function listener with default configuration

func (*Manager) RegisterFuncWithConfig

func (m *Manager) RegisterFuncWithConfig(event Event, handler func(data *EventData), config ListenerConfig) string

RegisterFuncWithConfig registers a function listener with custom configuration

func (*Manager) RegisterWithConfig

func (m *Manager) RegisterWithConfig(event Event, listener Listener, config ListenerConfig) string

RegisterWithConfig registers a listener with custom configuration

func (*Manager) ResetStats

func (m *Manager) ResetStats()

ResetStats resets event statistics | 重置事件统计

func (*Manager) SetPanicHandler

func (m *Manager) SetPanicHandler(handler func(event Event, data *EventData, recovered any))

SetPanicHandler sets a custom panic handler for listener errors | 设置自定义的panic处理器

func (*Manager) Trigger

func (m *Manager) Trigger(data *EventData)

Trigger dispatches an event to all registered listeners

func (*Manager) TriggerAsync

func (m *Manager) TriggerAsync(data *EventData)

TriggerAsync triggers an event asynchronously and returns immediately | 异步触发事件并立即返回

func (*Manager) TriggerSync

func (m *Manager) TriggerSync(data *EventData)

TriggerSync triggers an event synchronously and waits for all listeners | 同步触发事件并等待所有监听器完成

func (*Manager) Unregister

func (m *Manager) Unregister(listenerID string) bool

Unregister removes a listener by its ID

func (*Manager) Wait

func (m *Manager) Wait()

Wait waits for all async listeners to complete (useful for testing/shutdown)

Jump to

Keyboard shortcuts

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