func brokerHandler(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { http.Error(w, "Method not allowed", 405) return } r.ParseForm() topic := r.Form.Get("topic") if len(topic) == 0 { http.Error(w, "Topic not specified", 400) return } ws, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Error(err.Error()) return } once.Do(func() { broker.Init() broker.Connect() }) c := &conn{ topic: topic, ws: ws, } go c.writeLoop() c.readLoop() }
func main() { cmd.Init() if err := broker.Init(); err != nil { log.Fatalf("Broker Init error: %v", err) } if err := broker.Connect(); err != nil { log.Fatalf("Broker Connect error: %v", err) } go pub() go sub() <-time.After(time.Second * 10) }