30 lines
510 B
Go
30 lines
510 B
Go
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)
|
|
}
|
|
}
|