package main import "github.com/gorilla/websocket" type Hub struct { clients map[*Client]bool } func HubNew() *Hub { return &Hub{ clients: make(map[*Client]bool), } } func (h *Hub) registerClient(client *Client) { h.clients[client] = true } func (h *Hub) unregisterClient(client *Client) { if _, ok := h.clients[client]; ok { delete(h.clients, client) } } func (h *Hub) sendClient(data []byte) { for client := range h.clients { _ = client.conn.WriteMessage(websocket.TextMessage, data) } }