diff --git a/src/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs b/src/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs index af74fb54a80e11019d07fcd92e7d4ba21124023d..5c920c6c8c72558bed22a825f9b8d9796b803cbd 100644 --- a/src/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs +++ b/src/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs @@ -37,6 +37,7 @@ namespace TouchSocket.Core.Plugins public static IPluginsManager UseReconnection(this IPluginsManager pluginsManager, int tryCount = 10, bool printLog = false, int sleepTime = 1000, Action successCallback = null) { + bool first = true; var reconnectionPlugin = new ReconnectionPlugin(client=> { int tryT = tryCount; @@ -50,9 +51,11 @@ namespace TouchSocket.Core.Plugins } else { + if (first) Thread.Sleep(1000); + first = false; client.Connect(); + first = true; } - successCallback?.Invoke(client); return true; } @@ -85,6 +88,7 @@ namespace TouchSocket.Core.Plugins Func failCallback=null, Action successCallback = null) { + bool first = true; var reconnectionPlugin = new ReconnectionPlugin(client => { int tryT = 0; @@ -98,7 +102,10 @@ namespace TouchSocket.Core.Plugins } else { + if (first) Thread.Sleep(1000); + first = false; client.Connect(); + first = true; } successCallback?.Invoke(client);