code: func (s *Streamer) run() {
  	go func() {
  		for {
  			select {
  			case cl := <-s.connecting:
  				s.clients[cl] = true
  
  			case cl := <-s.disconnecting:
  				delete(s.clients, cl)
  
  			case event := <-s.event:
  				for cl := range s.clients {
  					// TODO: non-blocking broadcast
  					//select {
  					//case cl <- event: // Try to send event to client
  					//default:
  					//	fmt.Println("Channel full. Discarding value")
  					//}
  					cl <- event
  				}
  			}
  		}
  	}()
  }
docs: // run starts a goroutine to handle client connects and broadcast events.