fix: websocket of upstream availability test not close

This commit is contained in:
0xJacky 2023-12-15 22:34:29 +08:00
parent dfee30e9d9
commit 53e1c32444
No known key found for this signature in database
GPG key ID: B6E4A6E4A561BAF0

View file

@ -1,45 +1,46 @@
package upstream package upstream
import ( import (
"github.com/0xJacky/Nginx-UI/internal/logger" "github.com/0xJacky/Nginx-UI/internal/logger"
"github.com/0xJacky/Nginx-UI/internal/upstream" "github.com/0xJacky/Nginx-UI/internal/upstream"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"net/http" "net/http"
"time" "time"
) )
func AvailabilityTest(c *gin.Context) { func AvailabilityTest(c *gin.Context) {
var upGrader = websocket.Upgrader{ var upGrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool { CheckOrigin: func(r *http.Request) bool {
return true return true
}, },
} }
// upgrade http to websocket // upgrade http to websocket
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil) ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
if err != nil { if err != nil {
logger.Error(err) logger.Error(err)
return return
} }
defer ws.Close() defer ws.Close()
var body []string var body []string
err = ws.ReadJSON(&body) err = ws.ReadJSON(&body)
if err != nil { if err != nil {
logger.Error(err) logger.Error(err)
return return
} }
for { for {
err = ws.WriteJSON(upstream.AvailabilityTest(body)) err = ws.WriteJSON(upstream.AvailabilityTest(body))
if err != nil { if err != nil {
logger.Error(err) logger.Error(err)
} return
}
time.Sleep(10 * time.Second) time.Sleep(10 * time.Second)
} }
} }