---
id: reconnection
title: 断线重连
---

import Tag from "@site/src/components/Tag.js";

## 一、说明

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

## 二、使用Reconnection插件

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

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

**断线重连，必须满足以下几个要求：**

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

:::  


## 三、使用PollingKeepAlive插件 <Tag>Pro</Tag>

Pro使用断线重连，在兼容上述方法的同时，还支持一种无人值守的连接方式，即轮询式连接，使用也非常简单，仅一行代码完成。

```csharp
.UsePlugin()
.ConfigurePlugins(a=> 
{
   a.Add<PollingKeepAlivePlugin<TcpClient>>()
                        .SetTick(1000);//每秒检查
});
```

:::caution 注意

**PollingKeepAlive断线重连，必须满足以下几个要求：**

1. 不要和UseReconnection一同使用
2. 必须有显式的断开信息，也就是说，直接拔网线的话，不会立即生效，会等tcp保活到期后再生效。

:::  