Skip to content
This repository was archived by the owner on Nov 5, 2024. It is now read-only.

Commit e361191

Browse files
committed
[proxy]修复WebSocket客户端异常关闭导致服务器端无法关闭的问题
1 parent ee2bf55 commit e361191

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

teaconfigs/agents/source_socket_connectivity.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (this *SocketConnectivitySource) Execute(params map[string]string) (value i
6363
return value, err
6464
}
6565

66-
conn.Close()
66+
_ = conn.Close()
6767

6868
value = maps.Map{
6969
"cost": time.Since(before).Seconds(),

teaproxy/request_websocket.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func (this *Request) callWebsocket(writer *ResponseWriter) error {
146146
errString := ""
147147
if resp != nil && resp.Body != nil {
148148
data, _ := ioutil.ReadAll(resp.Body)
149-
errString = strconv.Itoa(resp.StatusCode) + " " + string(bytes.TrimSpace(data))
149+
errString = strconv.Itoa(resp.StatusCode) + ": " + string(bytes.TrimSpace(data))
150150
}
151151
err1 := errors.New(err.Error() + ": " + errString)
152152
logs.Error(err1)
@@ -195,6 +195,13 @@ func (this *Request) callWebsocket(writer *ResponseWriter) error {
195195
this.addError(err)
196196
}
197197
clientIsClosed = true
198+
_ = client.Close()
199+
200+
// 关闭Server
201+
if !serverIsClosed {
202+
serverIsClosed = true
203+
_ = server.Close()
204+
}
198205
break
199206
}
200207
_ = server.WriteMessage(messageType, message)
@@ -212,7 +219,10 @@ func (this *Request) callWebsocket(writer *ResponseWriter) error {
212219
}
213220
serverIsClosed = true
214221
_ = server.Close()
222+
223+
// 关闭客户端
215224
if !clientIsClosed {
225+
clientIsClosed = true
216226
_ = client.Close()
217227
}
218228
break

0 commit comments

Comments
 (0)