Skip to content

Commit a503c05

Browse files
author
liuyj
committed
[update]
1. sdk支持设置长连接有效期
1 parent c0765c5 commit a503c05

6 files changed

Lines changed: 23 additions & 7 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<dependency>
2323
<groupId>com.getui.push</groupId>
2424
<artifactId>restful-sdk</artifactId>
25-
<version>1.0.0.3</version>
25+
<version>1.0.0.4</version>
2626
</dependency>
2727
```
2828

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<groupId>com.getui.push</groupId>
88
<artifactId>restful-sdk</artifactId>
99
<packaging>jar</packaging>
10-
<version>1.0.0.3</version>
10+
<version>1.0.0.4</version>
1111
<url>https://github.com/GetuiLaboratory/getui-pushapi-java-client-v2</url>
1212
<name>Getui Push API Java Client</name>
1313
<description>Getui's officially supported Java client library for accessing Getui APIs.</description>

src/main/java/com/getui/push/v2/sdk/GtApiConfiguration.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public class GtApiConfiguration {
6565
* http请求失败,最大尝试次数
6666
*/
6767
private int maxHttpTryTime = 1;
68+
/**
69+
* 保持长连接的时长,默认10分钟
70+
*/
71+
private long keepAliveMinutes = 10;
6872

6973
/**
7074
* http请求时是否需要信任https
@@ -183,6 +187,14 @@ public void setMaxHttpTryTime(int maxHttpTryTime) {
183187
this.maxHttpTryTime = maxHttpTryTime;
184188
}
185189

190+
public long getKeepAliveMinutes() {
191+
return keepAliveMinutes;
192+
}
193+
194+
public void setKeepAliveMinutes(long keepAliveMinutes) {
195+
this.keepAliveMinutes = keepAliveMinutes;
196+
}
197+
186198
public GtHttpProxyConfig getProxyConfig() {
187199
return proxyConfig;
188200
}

src/main/java/com/getui/push/v2/sdk/common/http/GtHttpClient.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
import java.security.cert.CertificateException;
3131
import java.security.cert.X509Certificate;
3232
import java.util.Map;
33+
import java.util.concurrent.TimeUnit;
3334

3435
public class GtHttpClient {
3536
private int maxHttpTryTime;
3637
CloseableHttpClient httpclient;
3738

38-
public GtHttpClient(int connectTimeout, int soTimeout, int maxHttpTryTime, GtHttpProxyConfig proxyConfig, boolean trustSSL) {
39+
public GtHttpClient(int connectTimeout, int soTimeout, int maxHttpTryTime, long keepAliveMinutes, GtHttpProxyConfig proxyConfig, boolean trustSSL) {
3940
if (connectTimeout <= 0) {
4041
throw new IllegalArgumentException("connectTimeout must be > 0.");
4142
}
@@ -63,7 +64,9 @@ public GtHttpClient(int connectTimeout, int soTimeout, int maxHttpTryTime, GtHtt
6364
.setSocketTimeout(soTimeout)
6465
.setMaxRedirects(0)
6566
.build();
66-
builder.setDefaultRequestConfig(config).useSystemProperties();
67+
builder.setDefaultRequestConfig(config)
68+
.setConnectionTimeToLive(keepAliveMinutes, TimeUnit.MINUTES)
69+
.useSystemProperties();
6770
this.httpclient = builder.build();
6871
}
6972

src/main/java/com/getui/push/v2/sdk/common/http/HttpManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public class HttpManager {
2121
* @param maxHttpTryTime 失败最大尝试次数
2222
* @param trustSSL
2323
*/
24-
public HttpManager(int connectionTimeOut, int readTimeout, int maxHttpTryTime, GtHttpProxyConfig proxyConfig, boolean trustSSL) {
25-
this.client = new GtHttpClient(connectionTimeOut, readTimeout, maxHttpTryTime, proxyConfig, trustSSL);
24+
public HttpManager(int connectionTimeOut, int readTimeout, int maxHttpTryTime, long keepAliveMinutes, GtHttpProxyConfig proxyConfig, boolean trustSSL) {
25+
this.client = new GtHttpClient(connectionTimeOut, readTimeout, maxHttpTryTime, keepAliveMinutes, proxyConfig, trustSSL);
2626
}
2727

2828
public String syncHttps(String url, String method, Map<String, Object> headers, String body, String contentType) {

src/main/java/com/getui/push/v2/sdk/core/client/DefaultApiClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ private DefaultApiClient(GtApiConfiguration apiConfiguration, IJson json) {
131131

132132
this.httpManager = new HttpManager(apiConfiguration.getConnectTimeout(),
133133
apiConfiguration.getSoTimeout(), apiConfiguration.getMaxHttpTryTime(),
134-
apiConfiguration.getProxyConfig(), apiConfiguration.isTrustSSL());
134+
apiConfiguration.getKeepAliveMinutes(), apiConfiguration.getProxyConfig(),
135+
apiConfiguration.isTrustSSL());
135136

136137
this.hostManager = new HostManager(apiConfiguration, this.httpManager);
137138
// 分析最稳定域名

0 commit comments

Comments
 (0)