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}