跳到主要内容
版本:2.1

断线重连

定义

命名空间:TouchSocket.Sockets
程序集:TouchSocket.dll

一、说明

所谓断线重连,即tcp客户端在断开服务器后,主动发起的再次连接请求。

二、使用Reconnection插件

使用断线重连非常简单,仅一行代码完成。

.ConfigurePlugins(a=> 
{
a.UseReconnection(5, true, 1000);//如需永远尝试连接,tryCount设置为-1即可。
});
注意

断线重连,必须满足以下几个要求:

  1. 必须完成第一次连接
  2. 必须是被动断开,如果是客户端主动调用Close、Disconnect等方法主动断开的话,不会生效。
  3. 必须有显式的断开信息,也就是说,直接拔网线的话,不会立即生效,会等tcp保活到期后再生效。

三、使用Polling轮询连接插件

使用Polling断线重连,是一种无人值守的连接方式,即轮询式连接,使用也非常简单,仅一行代码完成。

.ConfigurePlugins(a=> 
{
a.UseReconnection()
.SetTick(TimeSpan.FromSeconds(1))
.UsePolling();

});
注意

Polling重连,必须满足以下几个要求:

  1. 必须有显式的断开信息,也就是说,直接拔网线的话,不会立即生效,会等tcp保活到期后再生效。
提示

UseReconnection插件,可以通过设置SetActionForCheck,自己规定检查活性的方法。默认情况下,只会检验Online属性,所以无法检验出断网等情况。如果自己控制,则可以发送心跳包,以保证在线状态。