| // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| // hub maintains the set of active clients and broadcasts messages to the |
| // Inbound messages from the clients. |
| // Register requests from the clients. |
| // Unregister requests from clients. |
| broadcast: make(chan []byte), |
| register: make(chan *Client), |
| unregister: make(chan *Client), |
| clients: make(map[*Client]bool), |
| case client := <-h.register: |
| case client := <-h.unregister: |
| if _, ok := h.clients[client]; ok { |
| delete(h.clients, client) |
| case message := <-h.broadcast: |
| for client := range h.clients { |
| case client.send <- message: |
| delete(h.clients, client) |