Skip to content

Commit 9a18005

Browse files
committed
enhance: do not test availability if not socket
1 parent 591486a commit 9a18005

File tree

4 files changed

+52
-47
lines changed

4 files changed

+52
-47
lines changed

api/upstream/upstream.go

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,49 @@
11
package upstream
22

33
import (
4-
"github.com/0xJacky/Nginx-UI/internal/logger"
5-
"github.com/0xJacky/Nginx-UI/internal/upstream"
6-
"github.com/gin-gonic/gin"
7-
"github.com/gorilla/websocket"
8-
"net/http"
9-
"time"
4+
"github.com/0xJacky/Nginx-UI/internal/logger"
5+
"github.com/0xJacky/Nginx-UI/internal/upstream"
6+
"github.com/gin-gonic/gin"
7+
"github.com/gorilla/websocket"
8+
"net/http"
9+
"time"
1010
)
1111

1212
func AvailabilityTest(c *gin.Context) {
13-
var upGrader = websocket.Upgrader{
14-
CheckOrigin: func(r *http.Request) bool {
15-
return true
16-
},
17-
}
18-
// upgrade http to websocket
19-
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
20-
if err != nil {
21-
logger.Error(err)
22-
return
23-
}
24-
25-
defer ws.Close()
26-
27-
var body []string
28-
29-
err = ws.ReadJSON(&body)
30-
31-
if err != nil {
32-
logger.Error(err)
33-
return
34-
}
35-
36-
for {
37-
err = ws.WriteJSON(upstream.AvailabilityTest(body))
38-
39-
if err != nil {
40-
logger.Error(err)
41-
return
42-
}
43-
44-
time.Sleep(10 * time.Second)
45-
}
13+
var upGrader = websocket.Upgrader{
14+
CheckOrigin: func(r *http.Request) bool {
15+
return true
16+
},
17+
}
18+
// upgrade http to websocket
19+
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
20+
if err != nil {
21+
logger.Error(err)
22+
return
23+
}
24+
25+
defer ws.Close()
26+
27+
var body []string
28+
29+
err = ws.ReadJSON(&body)
30+
31+
if err != nil {
32+
logger.Error(err)
33+
return
34+
}
35+
36+
for {
37+
err = ws.WriteJSON(upstream.AvailabilityTest(body))
38+
39+
if err != nil || websocket.IsUnexpectedCloseError(err,
40+
websocket.CloseGoingAway,
41+
websocket.CloseNoStatusReceived,
42+
websocket.CloseNormalClosure) {
43+
logger.Error(err)
44+
break
45+
}
46+
47+
time.Sleep(10 * time.Second)
48+
}
4649
}

app/src/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"2.0.0-beta.8","build_id":98,"total_build":302}
1+
{"version":"2.0.0-beta.8","build_id":100,"total_build":304}

app/src/views/domain/ngx_conf/NgxUpstream.vue

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,14 @@ function availability_test() {
7474
}
7575
}
7676
77-
websocket.value = upstream.availability_test()
78-
websocket.value.onopen = () => {
79-
websocket.value.send(JSON.stringify(sockets))
80-
}
81-
websocket.value.onmessage = (e: MessageEvent) => {
82-
availabilityResult.value = JSON.parse(e.data)
77+
if (sockets.length > 0) {
78+
websocket.value = upstream.availability_test()
79+
websocket.value.onopen = () => {
80+
websocket.value.send(JSON.stringify(sockets))
81+
}
82+
websocket.value.onmessage = (e: MessageEvent) => {
83+
availabilityResult.value = JSON.parse(e.data)
84+
}
8385
}
8486
}
8587

app/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"2.0.0-beta.8","build_id":98,"total_build":302}
1+
{"version":"2.0.0-beta.8","build_id":100,"total_build":304}

0 commit comments

Comments
 (0)