修复冻结用户强制下线
This commit is contained in:
@@ -86,6 +86,22 @@ func (h *Hub) Unsubscribe(pType string, pID uint64, ch <-chan *ChatEvent) {
|
||||
h.mu.Unlock()
|
||||
}
|
||||
|
||||
// DisconnectUser 关闭指定用户当前进程内的全部实时连接。
|
||||
func (h *Hub) DisconnectUser(userID uint64) {
|
||||
h.disconnect("user", userID)
|
||||
}
|
||||
|
||||
func (h *Hub) disconnect(pType string, pID uint64) {
|
||||
key := principal{Type: pType, ID: pID}
|
||||
h.mu.Lock()
|
||||
clients := h.clients[key]
|
||||
delete(h.clients, key)
|
||||
for ch := range clients {
|
||||
close(ch)
|
||||
}
|
||||
h.mu.Unlock()
|
||||
}
|
||||
|
||||
// NotifyConversation 查询会话参与者,向所有在线参与者推送事件。
|
||||
func (h *Hub) NotifyConversation(conversationID uint64, event *ChatEvent) {
|
||||
if h.db == nil {
|
||||
|
||||
Reference in New Issue
Block a user