93 lines
1.7 KiB
Go
93 lines
1.7 KiB
Go
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)
|
|
}
|