修复:为 user-svc 添加健康检查和启动顺序控制

This commit is contained in:
fish
2026-03-28 21:54:09 +08:00
parent 5ac0a52bb1
commit c5260bcae8
31 changed files with 1995 additions and 167 deletions

View File

@@ -3,57 +3,57 @@ package ws
import (
"log"
"backend/gateway/internal/service"
"gateway/internal/service"
)
type Hub struct {
// 注册的客户端
clients map[*Client]bool
Clients map[*Client]bool
// 从客户端接收的消息
broadcast chan *Message
Broadcast chan *Message
// 注册请求
register chan *Client
Register chan *Client
// 注销请求
unregister chan *Client
Unregister chan *Client
// 用户服务
userService *service.UserService
UserService *service.UserService
}
func NewHub(userService *service.UserService) *Hub {
return &Hub{
broadcast: make(chan *Message),
register: make(chan *Client),
unregister: make(chan *Client),
clients: make(map[*Client]bool),
userService: userService,
Broadcast: make(chan *Message),
Register: make(chan *Client),
Unregister: make(chan *Client),
Clients: make(map[*Client]bool),
UserService: userService,
}
}
func (h *Hub) Run() {
for {
select {
case client := <-h.register:
h.clients[client] = true
log.Printf("Client connected. Total clients: %d", len(h.clients))
case client := <-h.Register:
h.Clients[client] = true
log.Printf("Client connected. Total clients: %d", len(h.Clients))
case client := <-h.unregister:
if _, ok := h.clients[client]; ok {
delete(h.clients, client)
close(client.send)
log.Printf("Client disconnected. Total clients: %d", len(h.clients))
case client := <-h.Unregister:
if _, ok := h.Clients[client]; ok {
delete(h.Clients, client)
close(client.Send)
log.Printf("Client disconnected. Total clients: %d", len(h.Clients))
}
case message := <-h.broadcast:
for client := range h.clients {
case message := <-h.Broadcast:
for client := range h.Clients {
select {
case client.send <- message:
case client.Send <- message:
default:
close(client.send)
delete(h.clients, client)
close(client.Send)
delete(h.Clients, client)
}
}
}