fix: fixing panic on pong write message
This commit is contained in:
@@ -220,19 +220,6 @@ func (wsClient *SafeWebsocketClient) connect() error {
|
||||
return fmt.Errorf("failed to connect to %s: %w", wsClient.baseHost, err)
|
||||
}
|
||||
|
||||
conn.SetPingHandler(func(pingData string) error {
|
||||
if err := conn.WriteMessage(websocket.PongMessage, []byte(pingData)); err != nil {
|
||||
if err == websocket.ErrCloseSent {
|
||||
return nil
|
||||
}
|
||||
if netErr, ok := err.(interface{ Timeout() bool }); ok && netErr.Timeout() {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
pingCtx, pingCancel := context.WithCancel(context.Background())
|
||||
wsClient.mu.WriteHandler(func() error {
|
||||
wsClient.cancelFuncs = append(wsClient.cancelFuncs, pingCancel)
|
||||
@@ -336,6 +323,23 @@ func (wsClient *SafeWebsocketClient) connect() error {
|
||||
}
|
||||
}()
|
||||
|
||||
conn.SetPingHandler(func(pingData string) error {
|
||||
wsClient.writeChan <- Message{
|
||||
MessageType: MessageTypePong,
|
||||
Data: []byte(pingData),
|
||||
}
|
||||
// if err := conn.WriteMessage(websocket.PongMessage, []byte(pingData)); err != nil {
|
||||
// if err == websocket.ErrCloseSent {
|
||||
// return nil
|
||||
// }
|
||||
// if netErr, ok := err.(interface{ Timeout() bool }); ok && netErr.Timeout() {
|
||||
// return nil
|
||||
// }
|
||||
// return err
|
||||
// }
|
||||
return nil
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user