enhance: do not test availability if not socket

This commit is contained in:
0xJacky 2023-12-15 23:21:58 +08:00
parent 591486a689
commit 9a18005eae
No known key found for this signature in database
GPG key ID: B6E4A6E4A561BAF0
4 changed files with 45 additions and 40 deletions

View file

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