go-kratos/internal/websocket/hub.go
2025-04-28 19:58:24 +08:00

27 lines
356 B
Go

package websocket
import "sync"
type Hub struct {
Rooms map[string]*Room
Lock sync.RWMutex
}
func NewHub() *Hub {
return &Hub{
Rooms: make(map[string]*Room),
}
}
func (h *Hub) GetRoom(name string) *Room {
h.Lock.Lock()
defer h.Lock.Unlock()
room, ok := h.Rooms[name]
if !ok {
room = NewRoom(name)
h.Rooms[name] = room
}
return room
}