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:
Oleks
2026-05-15 21:45:19 +03:00
parent 580fe2df32
commit a8d8d138cb
+13
View File
@@ -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()