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 websocketRunClientMap() { Map 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; } }