30 lines
583 B
Go
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)
|
|
}
|