//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(); // } // } // //}