| 61 | } |
| 62 | |
| 63 | func (s *Server) run(broadcast <-chan string) { |
| 64 | for m := range broadcast { |
| 65 | s.Lock() |
| 66 | for conn := range s.connections { |
| 67 | if conn == nil { |
| 68 | continue |
| 69 | } |
| 70 | err := conn.WriteMessage(websocket.TextMessage, []byte(m)) |
| 71 | if err != nil { |
| 72 | s.logger.Say("Error: %s", err) |
| 73 | delete(s.connections, conn) |
| 74 | } |
| 75 | } |
| 76 | s.Unlock() |
| 77 | } |
| 78 | s.Lock() |
| 79 | defer s.Unlock() |
| 80 | for conn := range s.connections { |
| 81 | delete(s.connections, conn) |
| 82 | conn.Close() |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | var upgrader = websocket.Upgrader{ |
| 87 | ReadBufferSize: 1024, |