fix: 修复网络连接时波动导致客户端死锁问题
This commit is contained in:
parent
8ae1b59a55
commit
6c6995d2dd
|
|
@ -118,14 +118,22 @@ func (c *WSClient) closeConn() {
|
||||||
c.isConnected = false
|
c.isConnected = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *WSClient) connect() any {
|
func (c *WSClient) connect() error {
|
||||||
c.mu.Lock()
|
|
||||||
defer c.mu.Unlock()
|
|
||||||
|
|
||||||
conn, _, err := websocket.DefaultDialer.Dial(c.config.ServerURL, nil)
|
conn, _, err := websocket.DefaultDialer.Dial(c.config.ServerURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.mu.Lock()
|
||||||
|
defer c.mu.Unlock()
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-c.stopChan:
|
||||||
|
conn.Close()
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
c.conn = conn
|
c.conn = conn
|
||||||
c.isConnected = true
|
c.isConnected = true
|
||||||
log.Printf("[网络] 成功连接到服务器: %s", c.config.ServerURL)
|
log.Printf("[网络] 成功连接到服务器: %s", c.config.ServerURL)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user