htmgo/framework/h/livereload.go
2024-09-17 12:13:22 -05:00

30 lines
583 B
Go

package h
import (
"github.com/google/uuid"
"github.com/labstack/echo/v4"
"golang.org/x/net/websocket"
"time"
)
var Version = uuid.NewString()
func handler(c echo.Context) error {
websocket.Handler(func(ws *websocket.Conn) {
defer ws.Close()
_ = websocket.Message.Send(ws, Version)
// keep ws alive
for {
err := websocket.Message.Send(ws, Version)
if err != nil {
return
}
time.Sleep(500 * time.Millisecond)
}
}).ServeHTTP(c.Response(), c.Request())
return nil
}
func AddLiveReloadHandler(path string, app *echo.Echo) {
app.GET(path, handler)
}