package org.example.config;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.example.constant.StockConstant;
|
import org.example.enums.EStockType;
|
import org.example.server.wcServer;
|
import org.java_websocket.client.WebSocketClient;
|
import org.java_websocket.handshake.ServerHandshake;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import java.net.URI;
|
import java.net.URISyntaxException;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* @ClassDescription: 客户端配置类
|
* 可以通过这里配置服务端的连接
|
* @JdkVersion: 1.8
|
* @Created: 2023/8/31 16:21
|
*/
|
@Slf4j
|
@Configuration
|
public class WsClientConfig {
|
|
@Bean
|
public Map<String, WebSocketClient> websocketRunClientMap() {
|
|
Map<String, WebSocketClient> retMap = new HashMap<>(2);
|
|
try {
|
wcServer websocketRunClient = new wcServer(new URI(StockConstant.WS_URL));
|
websocketRunClient.connect();
|
websocketRunClient.setConnectionLostTimeout(0);
|
new Thread(() -> {
|
while (true) {
|
try {
|
Thread.sleep(8000);
|
websocketRunClient.send("heartbeat".getBytes());
|
} catch (Exception e) {
|
websocketRunClient.reconnect();
|
websocketRunClient.setConnectionLostTimeout(0);
|
}
|
}
|
}).start();
|
retMap.put(EStockType.IN.getStockKey(), websocketRunClient);
|
} catch (Exception e) {
|
}
|
return retMap;
|
}
|
}
|