htmgo/framework/h/livereload.go

31 lines
583 B
Go
Raw Normal View History

2024-09-11 00:52:18 +00:00
package h
import (
2024-09-17 17:13:22 +00:00
"github.com/google/uuid"
"github.com/labstack/echo/v4"
"golang.org/x/net/websocket"
2024-09-11 00:52:18 +00:00
"time"
)
2024-09-17 17:13:22 +00:00
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)
2024-09-17 17:13:22 +00:00
}
}).ServeHTTP(c.Response(), c.Request())
return nil
2024-09-11 00:52:18 +00:00
}
func AddLiveReloadHandler(path string, app *echo.Echo) {
app.GET(path, handler)
2024-09-11 00:52:18 +00:00
}