//package org.example.ssmico.demos.web.webSocket;
|
//
|
//import lombok.extern.slf4j.Slf4j;
|
//import org.java_websocket.client.WebSocketClient;
|
//import org.springframework.context.annotation.Bean;
|
//import org.springframework.context.annotation.Configuration;
|
//
|
//import javax.annotation.PreDestroy;
|
//import java.net.URI;
|
//import java.util.concurrent.Executors;
|
//import java.util.concurrent.ScheduledExecutorService;
|
//import java.util.concurrent.TimeUnit;
|
//
|
//@Slf4j
|
//@Configuration
|
//public class WebSocketClientBeanConfig {
|
//
|
// private WebsocketRunClient usWebsocketRunClient;
|
// private ScheduledExecutorService scheduledExecutorService;
|
//
|
// @Bean
|
// public WebsocketRunClient websocketRunClientMap() throws Exception {
|
// usWebsocketRunClient = new WebsocketRunClient(new URI("wss://api.huobi.pro/ws?symbol=btcusdt"));
|
// usWebsocketRunClient.connect();
|
// usWebsocketRunClient.setConnectionLostTimeout(0);
|
//
|
// scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
|
// scheduledExecutorService.scheduleAtFixedRate(this::sendHeartbeat, 0, 8, TimeUnit.SECONDS);
|
//
|
// return usWebsocketRunClient;
|
// }
|
//
|
// private void sendHeartbeat() {
|
// try {
|
// if (usWebsocketRunClient != null && usWebsocketRunClient.isOpen()) {
|
// usWebsocketRunClient.send("heartbeat".getBytes());
|
// } else {
|
// reconnectAndSetTimeout();
|
// }
|
// } catch (Exception e) {
|
// log.error("发送心跳包失败:" + e.getMessage());
|
// reconnectAndSetTimeout();
|
// }
|
// }
|
//
|
// private void reconnectAndSetTimeout() {
|
// try {
|
// if (usWebsocketRunClient != null && !usWebsocketRunClient.isOpen()) {
|
// usWebsocketRunClient.reconnect();
|
// usWebsocketRunClient.setConnectionLostTimeout(0);
|
// }
|
// } catch (Exception e) {
|
// log.error("重新连接失败:" + e.getMessage());
|
// }
|
// }
|
//
|
// @PreDestroy
|
// public void destroy() {
|
// if (scheduledExecutorService != null) {
|
// scheduledExecutorService.shutdown();
|
// }
|
// if (usWebsocketRunClient != null) {
|
// usWebsocketRunClient.close();
|
// }
|
// }
|
//
|
//}
|