#java websocket断开重连,java客户端websocket断开重连
最近一个需求。需要用java客户端的方式连接远程的webscoket 站点。需要保证连接断开自动重连,于是基于Java-WebSocket这个开源代码实现了断开重连,代码比较简单,如下,还在完善中。。。首先需要注意的是为了防止重试给远端的websocket 站点带来过大的压力,我们需要设计一个规则,重试间隔随着重试次数的增加而不断增加,防止给远端站点带来过大压力。具体代码如下:
Java-WebSocket pom
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.9</version>
</dependency>
package com.suning.search.common.utils;
import java.net.URI;
import java.util.Map;
import java.util.Timer;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft;
import org.java_websocket.handshake.ServerHandshake;
public abstract class ReconnectingWebSocketClient extends WebSocketClient {
private boolean debug = true;
private Integer reconnectInterval = 1000;
private Integer maxReconnectInterval = 30000;
private Double reconnectDecay = 1.5;
private Integer reconnectAttempts = 0;
private Integer maxReconnectAttempts = 5000;
private Boolean forcedClose = false;
private Timer reconnectTimer;
private Boolean isReconnecting = false;
private ReschedulableTimerTask reconnectTimerTask;
public ReconnectingWebSocketClient( URI serverUri , Draft protocolDraft ) {
super( serverUri, protocolDraft, null