feat(eventsource): add ConnectedUIDs accessor
Expose a snapshot of currently registered uids so fan-out broadcasters can pre-filter recipients before calling SendMessage.
This commit is contained in:
@@ -68,6 +68,19 @@ func (m *Manager) UnregisterAll() {
|
||||
m.messengers = map[int64]*Messenger{}
|
||||
}
|
||||
|
||||
// ConnectedUIDs returns a snapshot of all currently registered user IDs.
|
||||
// Useful for fan-out broadcasters that need to filter recipients before
|
||||
// calling SendMessage.
|
||||
func (m *Manager) ConnectedUIDs() []int64 {
|
||||
m.mutex.Lock()
|
||||
defer m.mutex.Unlock()
|
||||
uids := make([]int64, 0, len(m.messengers))
|
||||
for uid := range m.messengers {
|
||||
uids = append(uids, uid)
|
||||
}
|
||||
return uids
|
||||
}
|
||||
|
||||
// SendMessage sends a message to a particular user
|
||||
func (m *Manager) SendMessage(uid int64, message *Event) {
|
||||
m.mutex.Lock()
|
||||
|
||||
Reference in New Issue
Block a user