|
17 | 17 | import java.util.concurrent.atomic.AtomicBoolean;
|
18 | 18 |
|
19 | 19 | /**
|
20 |
| - * 一个{@code ReverseTcpProxyTunnelClient} 对应一个失败重连的 TCP 连接。如果需要多个 TCP 连接,那么就需要创建多个 {@code ReverseTcpProxyTunnelClient} 实例 |
| 20 | + * 一个{@code ReverseTcpProxyTunnelClient}内部维护不同的连接,分别为 |
| 21 | + * <ul> |
| 22 | + * <li>一个控制连接,与{@code TunnelServer}通信,支持失败重连</li> |
| 23 | + * <li>多个数据连接,与{@code DataProxyServer}通信</li> |
| 24 | + * <li>多个后端连接,与你实际要内网穿透出去的服务通信</li> |
| 25 | + * </ul> |
| 26 | + * 其中,数据连接与后端连接绑定双向生命周期、双向数据传输。 |
21 | 27 | *
|
22 | 28 | * <p>背景:</p><p>我近期买了个树莓派,但是又不想随身带着树莓派,因此希望可以公网访问。</p>
|
23 | 29 | * <p>
|
@@ -103,6 +109,24 @@ public ReverseTcpProxyTunnelClient dataProxyName(String dataProxyName) {
|
103 | 109 | return this;
|
104 | 110 | }
|
105 | 111 |
|
| 112 | + public static ReverseTcpProxyTunnelClient create(Vertx vertx, NetClient netClient, long minDelay, long maxDelay, long heartbeatDelay, String secret, String name) { |
| 113 | + return new ReverseTcpProxyTunnelClient(vertx, netClient, minDelay, maxDelay, heartbeatDelay, secret, name); |
| 114 | + } |
| 115 | + |
| 116 | + public static ReverseTcpProxyTunnelClient create(Vertx vertx, NetClient netClient, String secret) { |
| 117 | + return new ReverseTcpProxyTunnelClient(vertx, netClient, MIN_DELAY_DEFAULT, MAX_DELAY_DEFAULT, HEARTBEAT_DELAY_DEFAULT, secret, generateName()); |
| 118 | + } |
| 119 | + |
| 120 | + |
| 121 | + public static ReverseTcpProxyTunnelClient create(Vertx vertx, NetClient netClient) { |
| 122 | + return new ReverseTcpProxyTunnelClient(vertx, netClient, MIN_DELAY_DEFAULT, MAX_DELAY_DEFAULT, HEARTBEAT_DELAY_DEFAULT, SECRET_DEFAULT, generateName()); |
| 123 | + } |
| 124 | + |
| 125 | + public static ReverseTcpProxyTunnelClient create(Vertx vertx) { |
| 126 | + return new ReverseTcpProxyTunnelClient(vertx, vertx.createNetClient(), MIN_DELAY_DEFAULT, MAX_DELAY_DEFAULT, HEARTBEAT_DELAY_DEFAULT, SECRET_DEFAULT, generateName()); |
| 127 | + } |
| 128 | + |
| 129 | + |
106 | 130 | /**
|
107 | 131 | * 注册内网穿透的监听逻辑
|
108 | 132 | */
|
@@ -216,22 +240,4 @@ protected boolean doHandle(Vertx vertx, NetSocket netSocket, TunnelMessageType t
|
216 | 240 | });
|
217 | 241 | }
|
218 | 242 |
|
219 |
| - public static ReverseTcpProxyTunnelClient create(Vertx vertx, NetClient netClient, long minDelay, long maxDelay, long heartbeatDelay, String secret, String name) { |
220 |
| - return new ReverseTcpProxyTunnelClient(vertx, netClient, minDelay, maxDelay, heartbeatDelay, secret, name); |
221 |
| - } |
222 |
| - |
223 |
| - public static ReverseTcpProxyTunnelClient create(Vertx vertx, NetClient netClient, String secret) { |
224 |
| - return new ReverseTcpProxyTunnelClient(vertx, netClient, MIN_DELAY_DEFAULT, MAX_DELAY_DEFAULT, HEARTBEAT_DELAY_DEFAULT, secret, generateName()); |
225 |
| - } |
226 |
| - |
227 |
| - |
228 |
| - public static ReverseTcpProxyTunnelClient create(Vertx vertx, NetClient netClient) { |
229 |
| - return new ReverseTcpProxyTunnelClient(vertx, netClient, MIN_DELAY_DEFAULT, MAX_DELAY_DEFAULT, HEARTBEAT_DELAY_DEFAULT, SECRET_DEFAULT, generateName()); |
230 |
| - } |
231 |
| - |
232 |
| - public static ReverseTcpProxyTunnelClient create(Vertx vertx) { |
233 |
| - return new ReverseTcpProxyTunnelClient(vertx, vertx.createNetClient(), MIN_DELAY_DEFAULT, MAX_DELAY_DEFAULT, HEARTBEAT_DELAY_DEFAULT, SECRET_DEFAULT, generateName()); |
234 |
| - } |
235 |
| - |
236 |
| - |
237 | 243 | }
|
0 commit comments