Documentation ¶
Index ¶
- type Event
- type Manager
- func (m *Manager) Init()
- func (m *Manager) Register(uid int64) <-chan *Event
- func (m *Manager) Run(ctx context.Context)
- func (m *Manager) SendMessage(uid int64, message *Event)
- func (m *Manager) SendMessageBlocking(uid int64, message *Event)
- func (m *Manager) Unregister(uid int64, channel <-chan *Event)
- func (m *Manager) UnregisterAll()
- type Messenger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Event ¶
type Event struct { // Name represents the value of the event: tag in the stream Name string // Data is either JSONified []byte or interface{} that can be JSONd Data interface{} // ID represents the ID of an event ID string // Retry tells the receiver only to attempt to reconnect to the source after this time Retry time.Duration }
Event is an eventsource event, not all fields need to be set
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages the eventsource Messengers
func GetManager ¶
func GetManager() *Manager
GetManager returns a Manager and initializes one as singleton if there's none yet
func (*Manager) SendMessage ¶
SendMessage sends a message to a particular user
func (*Manager) SendMessageBlocking ¶
SendMessageBlocking sends a message to a particular user
func (*Manager) Unregister ¶
Unregister message channel
type Messenger ¶
type Messenger struct {
// contains filtered or unexported fields
}
Messenger is a per uid message store
func NewMessenger ¶
NewMessenger creates a messenger for a particular uid
func (*Messenger) SendMessage ¶
SendMessage sends the message to all registered channels
func (*Messenger) SendMessageBlocking ¶
SendMessageBlocking sends the message to all registered channels and ensures it gets sent
func (*Messenger) Unregister ¶
Unregister removes the provider chan []byte
func (*Messenger) UnregisterAll ¶
func (m *Messenger) UnregisterAll()
UnregisterAll removes all chan []byte