|
@@ -16,8 +16,8 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
@Slf4j
|
|
|
@Component
|
|
|
public class WebSocketCheckThread extends Thread {
|
|
|
-
|
|
|
-
|
|
|
+ public static volatile boolean iot_websocket_reconnect = true;
|
|
|
+ public static volatile boolean alarm_websocket_reconnect = true;
|
|
|
|
|
|
/**
|
|
|
* @param :
|
|
@@ -31,63 +31,77 @@ public class WebSocketCheckThread extends Thread {
|
|
|
*/
|
|
|
@Scheduled(initialDelay = 60000, fixedDelay = 5000)
|
|
|
public void holderConneted() {
|
|
|
- try {
|
|
|
- WebSocketClient outCallWebSocketClientHolder = IOTWebSocketClient.client;
|
|
|
- if (null == outCallWebSocketClientHolder) {
|
|
|
- log.info("当前连接还未建立");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (!outCallWebSocketClientHolder.isOpen()) {
|
|
|
- log.error("连接已经断开,正在重新连接,当前状态为[{}]", outCallWebSocketClientHolder.getReadyState());
|
|
|
- if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.NOT_YET_CONNECTED)) {
|
|
|
- outCallWebSocketClientHolder.connect();
|
|
|
- } else if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSING) || outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSED)) {
|
|
|
- outCallWebSocketClientHolder.reconnect();
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("连接发生异常,尝试重新连接", e);
|
|
|
- //重连异常后删除旧的连接并重新连接
|
|
|
+ if (iot_websocket_reconnect) {
|
|
|
try {
|
|
|
- if (!IOTWebSocketClient.client.isOpen()) {
|
|
|
- IOTWebSocketClient.client.close();
|
|
|
+ WebSocketClient outCallWebSocketClientHolder = IOTWebSocketClient.client;
|
|
|
+ if (null == outCallWebSocketClientHolder) {
|
|
|
+ log.info("IOT当前连接还未建立");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!outCallWebSocketClientHolder.isOpen()) {
|
|
|
+ log.error("IOT连接已经断开,正在重新连接,当前状态为[{}]", outCallWebSocketClientHolder.getReadyState());
|
|
|
+ if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.NOT_YET_CONNECTED)) {
|
|
|
+ outCallWebSocketClientHolder.connect();
|
|
|
+ } else if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSING)
|
|
|
+ || outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSED)) {
|
|
|
+ outCallWebSocketClientHolder.reconnect();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("IOT连接发生异常,尝试重新连接", e);
|
|
|
+ // 重连异常后删除旧的连接并重新连接
|
|
|
+ try {
|
|
|
+ if (!IOTWebSocketClient.client.isOpen()) {
|
|
|
+ IOTWebSocketClient.client.close();
|
|
|
+ }
|
|
|
+ } catch (Exception e2) {
|
|
|
+ log.error(e2.getMessage(), e2);
|
|
|
+ }
|
|
|
+ try {
|
|
|
IOTWebSocketClient.client = new IOTWebSocketClient(new URI(Constant.iot_websocket_url + "?projectId="
|
|
|
+ RepositoryContainer.RepositoryProject.projectId.substring(2) + "&type=iot,text,pointset"));
|
|
|
IOTWebSocketClient.client.connect();
|
|
|
+ } catch (Exception e2) {
|
|
|
+ log.error(e2.getMessage(), e2);
|
|
|
}
|
|
|
- } catch (Exception e2) {
|
|
|
- log.error(e2.getMessage(),e2);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- try {
|
|
|
- WebSocketClient outCallWebSocketClientHolder = AlarmWebSocketClient.client;
|
|
|
- if (null == outCallWebSocketClientHolder) {
|
|
|
- log.info("当前连接还未建立");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (!outCallWebSocketClientHolder.isOpen()) {
|
|
|
- log.error("连接已经断开,正在重新连接,当前状态为[{}]", outCallWebSocketClientHolder.getReadyState());
|
|
|
- if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.NOT_YET_CONNECTED)) {
|
|
|
- outCallWebSocketClientHolder.connect();
|
|
|
- } else if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSING) || outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSED)) {
|
|
|
- outCallWebSocketClientHolder.reconnect();
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("连接发生异常,尝试重新连接", e);
|
|
|
- //重连异常后删除旧的连接并重新连接
|
|
|
+ if (alarm_websocket_reconnect) {
|
|
|
try {
|
|
|
- if (!AlarmWebSocketClient.client.isOpen()) {
|
|
|
- AlarmWebSocketClient.client.close();
|
|
|
- AlarmWebSocketClient.client = new AlarmWebSocketClient(new URI(Constant.alarm_websocket_url + "/" + RepositoryContainer.RepositoryProject.projectId));
|
|
|
+ WebSocketClient outCallWebSocketClientHolder = AlarmWebSocketClient.client;
|
|
|
+ if (null == outCallWebSocketClientHolder) {
|
|
|
+ log.info("Alarm当前连接还未建立");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!outCallWebSocketClientHolder.isOpen()) {
|
|
|
+ log.error("Alarm连接已经断开,正在重新连接,当前状态为[{}]", outCallWebSocketClientHolder.getReadyState());
|
|
|
+ if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.NOT_YET_CONNECTED)) {
|
|
|
+ outCallWebSocketClientHolder.connect();
|
|
|
+ } else if (outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSING)
|
|
|
+ || outCallWebSocketClientHolder.getReadyState().equals(WebSocket.READYSTATE.CLOSED)) {
|
|
|
+ outCallWebSocketClientHolder.reconnect();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("Alarm连接发生异常,尝试重新连接", e);
|
|
|
+ // 重连异常后删除旧的连接并重新连接
|
|
|
+ try {
|
|
|
+ if (!AlarmWebSocketClient.client.isOpen()) {
|
|
|
+ AlarmWebSocketClient.client.close();
|
|
|
+ }
|
|
|
+ } catch (Exception e2) {
|
|
|
+ log.error(e2.getMessage(), e2);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ AlarmWebSocketClient.client = new AlarmWebSocketClient(
|
|
|
+ new URI(Constant.alarm_websocket_url + "/" + RepositoryContainer.RepositoryProject.projectId));
|
|
|
AlarmWebSocketClient.client.connect();
|
|
|
+ } catch (Exception e2) {
|
|
|
+ log.error(e2.getMessage(), e2);
|
|
|
}
|
|
|
- } catch (Exception e2) {
|
|
|
- log.error(e2.getMessage(),e2);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|