diff --git a/server/websocket.go b/server/websocket.go index 6b558ca8..0e5d00db 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -179,11 +179,9 @@ func (c *websocketClient) listenApi(conn *wsc.Conn, u bool) { } if c.conf.ReverseReconnectInterval != 0 { time.Sleep(time.Millisecond * time.Duration(c.conf.ReverseReconnectInterval)) - if u { - c.connectUniversal() - return + if !u { + c.connectApi() } - c.connectApi() } } @@ -204,7 +202,15 @@ func (c *websocketClient) onBotPushEvent(m coolq.MSG) { } if c.universalConn != nil { log.Debugf("向WS服务器 %v 推送Event: %v", c.universalConn.RemoteAddr().String(), m.ToJson()) - _, _ = c.universalConn.Write([]byte(m.ToJson())) + if _, err := c.universalConn.Write([]byte(m.ToJson())); err != nil { + _ = c.universalConn.Close() + if c.conf.ReverseReconnectInterval != 0 { + go func() { + time.Sleep(time.Millisecond * time.Duration(c.conf.ReverseReconnectInterval)) + c.connectUniversal() + }() + } + } } }