repos / hub.go.git


Evgenii Akentev  ·  2024-09-02

main.go

 1package main
 2
 3import (
 4	"flag"
 5	"log"
 6	"net/http"
 7  
 8)
 9
10func main() {
11	flag.Parse()
12  
13  hub := newHub()
14  
15  go hub.run()
16
17  go listenChain()
18
19  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
20		serve(hub, w, r)
21	})
22  
23  log.Println("Started websocket server at :3000")
24
25  err := http.ListenAndServe(":3000", nil)
26	if err != nil {
27		log.Fatal("ListenAndServe: ", err)
28	}
29}
30
31func serve(hub *Hub, w http.ResponseWriter, r *http.Request) {
32  conn, err := upgrader.Upgrade(w, r, nil)
33  if err != nil {
34    log.Println(err)
35    return
36  }
37
38  client := Client{hub: hub, conn: conn}
39
40  hub.register <- &client
41
42  go client.run()
43}