Feat: ban user and kick user from hub

pull/134/head
zijiren233 11 months ago
parent 167b43fc77
commit 197ba81529

@ -246,3 +246,19 @@ func (h *Hub) IsOnline(userID string) bool {
_, ok := h.clients.Load(userID)
return ok
}
func (h *Hub) KickUser(userID string) error {
if h.Closed() {
return ErrAlreadyClosed
}
cli, ok := h.clients.Load(userID)
if !ok {
return nil
}
cli.lock.RLock()
defer cli.lock.RUnlock()
for c := range cli.m {
c.Close()
}
return nil
}

@ -448,7 +448,10 @@ func (r *Room) BanMember(userID string) error {
if r.IsCreator(userID) {
return errors.New("you are creator, cannot ban")
}
defer r.members.Delete(userID)
defer func() {
r.members.Delete(userID)
_ = r.hub.KickUser(userID)
}()
return db.RoomBanMember(r.ID, userID)
}

Loading…
Cancel
Save