(client *Client)
| 108 | } |
| 109 | |
| 110 | func (h *Hub) Unregister(client *Client) error { |
| 111 | if client == nil { |
| 112 | return nil |
| 113 | } |
| 114 | h.mux.Lock() |
| 115 | defer h.mux.Unlock() |
| 116 | cli, ok := h.clients[client.ID()] |
| 117 | if ok { |
| 118 | cli.Stop() |
| 119 | slog.DebugContext(h.ctx, "unregistering client", "client_id", cli.ID()) |
| 120 | delete(h.clients, cli.ID()) |
| 121 | slog.DebugContext(h.ctx, "current client count", "count", len(h.clients)) |
| 122 | } |
| 123 | return nil |
| 124 | } |
| 125 | |
| 126 | func (h *Hub) Write(msg []byte) (int, error) { |
| 127 | tmp := make([]byte, len(msg)) |