peternameyakj
2024-08-29 ca8e89d46a92b567aa9af2c32ea2951d1e60ca6c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//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();
//        }
//    }
//
//}