fix: agent ws connect panic

This commit is contained in:
engigu
2026-01-01 13:58:27 +08:00
parent c29fb178a2
commit ac44bc450b
3 changed files with 6 additions and 23 deletions
+1 -19
View File
@@ -189,22 +189,6 @@ func (a *Agent) connectWS() error {
return err
}
// 设置读取超时(比服务端 ping 间隔长一些)
conn.SetReadDeadline(time.Now().Add(60 * time.Second))
// 设置 Ping 处理器,收到 Ping 时重置读取超时
conn.SetPingHandler(func(appData string) error {
conn.SetReadDeadline(time.Now().Add(60 * time.Second))
// 回复 Pong
return conn.WriteControl(websocket.PongMessage, []byte(appData), time.Now().Add(5*time.Second))
})
// 设置 Pong 处理器,收到 Pong 时重置读取超时
conn.SetPongHandler(func(appData string) error {
conn.SetReadDeadline(time.Now().Add(60 * time.Second))
return nil
})
a.wsMu.Lock()
a.wsConn = conn
a.wsStopCh = make(chan struct{})
@@ -244,12 +228,10 @@ func (a *Agent) readWS() {
_, message, err := conn.ReadMessage()
if err != nil {
log.Warnf("WebSocket 读取错误: %v", err)
return
}
// 收到消息,重置读取超时
conn.SetReadDeadline(time.Now().Add(60 * time.Second))
var msg WSMessage
if err := json.Unmarshal(message, &msg); err != nil {
continue