Documentation
¶
Index ¶
- type Event
- type EventData
- type EventFilter
- type EventStats
- type Listener
- type ListenerConfig
- type ListenerFunc
- type Manager
- func (m *Manager) AddFilter(filter EventFilter)
- func (m *Manager) Clear()
- func (m *Manager) ClearEvent(event Event)
- func (m *Manager) ClearFilters()
- func (m *Manager) Count() int
- func (m *Manager) CountForEvent(event Event) int
- func (m *Manager) DisableEvent(events ...Event)
- func (m *Manager) EnableEvent(events ...Event)
- func (m *Manager) EnableStats(enable bool)
- func (m *Manager) GetAllEvents() []Event
- func (m *Manager) GetListenerIDs(event Event) []string
- func (m *Manager) GetStats() EventStats
- func (m *Manager) HasListeners(event Event) bool
- func (m *Manager) IsEventEnabled(event Event) bool
- func (m *Manager) Register(event Event, listener Listener) string
- func (m *Manager) RegisterFunc(event Event, handler func(data *EventData)) string
- func (m *Manager) RegisterFuncWithConfig(event Event, handler func(data *EventData), config ListenerConfig) string
- func (m *Manager) RegisterWithConfig(event Event, listener Listener, config ListenerConfig) string
- func (m *Manager) ResetStats()
- func (m *Manager) SetPanicHandler(handler func(event Event, data *EventData, recovered any))
- func (m *Manager) Trigger(data *EventData)
- func (m *Manager) TriggerAsync(data *EventData)
- func (m *Manager) TriggerSync(data *EventData)
- func (m *Manager) Unregister(listenerID string) bool
- func (m *Manager) Wait()
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 | 事件数据,包含触发事件的相关信息
type EventFilter ¶
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 (*Manager) AddFilter ¶
func (m *Manager) AddFilter(filter EventFilter)
AddFilter adds a global event filter | 添加全局事件过滤器
func (*Manager) ClearEvent ¶
ClearEvent removes all listeners for a specific event
func (*Manager) ClearFilters ¶
func (m *Manager) ClearFilters()
ClearFilters removes all event filters | 清除所有事件过滤器
func (*Manager) CountForEvent ¶
CountForEvent returns the number of listeners for a specific event
func (*Manager) DisableEvent ¶
DisableEvent disables specific events | 禁用特定事件
func (*Manager) EnableEvent ¶
EnableEvent enables specific events (disables all others) | 启用特定事件(禁用其他所有事件) Call with no arguments to enable all events | 不传参数时启用所有事件
func (*Manager) EnableStats ¶
EnableStats enables event statistics collection | 启用事件统计
func (*Manager) GetAllEvents ¶
GetAllEvents returns all events that have registered listeners | 获取所有已注册监听器的事件
func (*Manager) GetListenerIDs ¶
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 ¶
HasListeners checks if there are any listeners for a specific event | 检查指定事件是否有监听器
func (*Manager) IsEventEnabled ¶
IsEventEnabled checks if an event is enabled
func (*Manager) RegisterFunc ¶
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 ¶
SetPanicHandler sets a custom panic handler for listener errors | 设置自定义的panic处理器
func (*Manager) TriggerAsync ¶
TriggerAsync triggers an event asynchronously and returns immediately | 异步触发事件并立即返回
func (*Manager) TriggerSync ¶
TriggerSync triggers an event synchronously and waits for all listeners | 同步触发事件并等待所有监听器完成
func (*Manager) Unregister ¶
Unregister removes a listener by its ID