package main import ( "fmt" "net/http" "time" "log" "html/template" ) func home(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { http.NotFound(w, r) return } fmt.Println(r.URL.Path) ts, err := template.ParseFiles("ui/html/home.page.tmpl", "ui/html/base.layout.tmpl") if err != nil { log.Println(err.Error()) http.Error(w, "Internal Server Error", 500) return } err = ts.Execute(w, nil) if err != nil { log.Println(err.Error()) http.Error(w, "Internal Server Error", 500) } // data := struct { // Name string // }{ // Name: "Vicente", // } // page_template.Execute(w, data) } func ws(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { fmt.Println("Upgrade error:", err) return } defer conn.Close() done := make(chan struct{}) go func() { ticker := time.NewTicker(1 * time.Second); for { select { case <-done: return case t := <-ticker.C: msg := map[string]interface{}{ "type": "server_tick", "timestamp": t.Format(time.RFC3339), } if err := conn.WriteJSON(msg); err != nil { fmt.Println("Write error:", err) return } } } }() for { var msg Message err := conn.ReadJSON(&msg) if err != nil { fmt.Println("Read error:", err) break } fmt.Println(msg) // Send a response // response := fmt.Sprintf("Server time: %s", time.Now()) // if err := conn.WriteMessage(websocket.TextMessage, []byte(response)); err != nil { // fmt.Println("Write error:", err) // break // } } } func redirectToHTTPS(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "https://localhost:8443" + r.URL.RequestURI(), http.StatusMovedPermanently) }