增加关闭hub

This commit is contained in:
2025-09-09 19:11:08 +08:00
parent 8d639d3b09
commit 43befdb71c
2 changed files with 18 additions and 0 deletions

View File

@@ -46,6 +46,9 @@ type Hub struct {
// deviceRepo 设备仓库
deviceRepo repository.DeviceRepo
// 关闭消息
close chan struct{}
}
// Client WebSocket客户端结构
@@ -78,6 +81,7 @@ func NewHub(deviceRepo repository.DeviceRepo) *Hub {
deviceClients: make(map[string]*Client),
logger: logs.NewLogger(),
deviceRepo: deviceRepo,
close: make(chan struct{}),
}
}
@@ -101,10 +105,20 @@ func (h *Hub) Run() {
h.unregisterClient(client)
case message := <-h.broadcast:
h.broadcastMessage(message)
case <-h.close:
return
}
}
}
func (h *Hub) Close() {
// 关闭时清理所有资源
for client := range h.clients {
h.unregisterClient(client)
}
close(h.close)
}
// registerClient 注册客户端
func (h *Hub) registerClient(client *Client) {
h.mutex.Lock()