add broadcast endpoint & broadcast pipeline return error.

This commit is contained in:
Miroslav Šedivý
2020-11-18 21:34:39 +01:00
parent 6fbb1a2cc7
commit db820806a4
8 changed files with 124 additions and 15 deletions

View File

@ -163,6 +163,27 @@ func (manager *SessionManagerCtx) Broadcast(v interface{}, exclude interface{})
}
}
func (manager *SessionManagerCtx) AdminBroadcast(v interface{}, exclude interface{}) {
manager.membersMu.Lock()
defer manager.membersMu.Unlock()
for id, session := range manager.members {
if !session.connected || !session.Admin() {
continue
}
if exclude != nil {
if in, _ := utils.ArrayIn(id, exclude); in {
continue
}
}
if err := session.Send(v); err != nil {
manager.logger.Warn().Err(err).Msgf("broadcasting admin event has failed")
}
}
}
// ---
// events
// ---