package com.nq.ws; import com.nq.enums.EStockType; import com.nq.utils.PropertiesUtil; import lombok.extern.slf4j.Slf4j; import org.java_websocket.client.WebSocketClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.net.URI; import java.util.HashMap; import java.util.Map; @Slf4j @Configuration public class WebSocketClientBeanConfig { @Bean public Map websocketRunClientMap() { Map retMap = new HashMap<>(2); for (EStockType value : EStockType.values()) { try { WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty(value.getWsUrl()))); 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.MAS.getStockKey(), websocketRunClient); } catch (Exception e) { } } // try { // WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("MAS_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.MAS.getStockKey(), websocketRunClient); // } catch (Exception e) { // } // // try { // USWebsocketRunClient usWebsocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL"))); // usWebsocketRunClient.connect(); // usWebsocketRunClient.setConnectionLostTimeout(0); // new Thread(() -> { // while (true) { // try { // Thread.sleep(8000); // usWebsocketRunClient.send("heartbeat".getBytes()); // } catch (Exception e) { // usWebsocketRunClient.reconnect(); // usWebsocketRunClient.setConnectionLostTimeout(0); // } // } // }).start(); // retMap.put(EStockType.US.getStockKey(), usWebsocketRunClient); // } catch (Exception e) { // } // // // try { // HKWebsocketRunClient hkWebsocketRunClient = new HKWebsocketRunClient(new URI(PropertiesUtil.getProperty("HK_WS_URL"))); // hkWebsocketRunClient.connect(); // hkWebsocketRunClient.setConnectionLostTimeout(0); // new Thread(() -> { // while (true) { // try { // Thread.sleep(8000); // hkWebsocketRunClient.send("heartbeat".getBytes()); // } catch (Exception e) { // hkWebsocketRunClient.reconnect(); // hkWebsocketRunClient.setConnectionLostTimeout(0); // } // } // }).start(); // retMap.put(EStockType.HK.getStockKey(), hkWebsocketRunClient); // } catch (Exception e) { // } // // try { // HKWebsocketRunClient hkWebsocketRunClient = new HKWebsocketRunClient(new URI(PropertiesUtil.getProperty("IN_WS_URL"))); // hkWebsocketRunClient.connect(); // hkWebsocketRunClient.setConnectionLostTimeout(0); // new Thread(() -> { // while (true) { // try { // Thread.sleep(8000); // hkWebsocketRunClient.send("heartbeat".getBytes()); // } catch (Exception e) { // hkWebsocketRunClient.reconnect(); // hkWebsocketRunClient.setConnectionLostTimeout(0); // } // } // }).start(); // retMap.put(EStockType.HK.getStockKey(), hkWebsocketRunClient); // } catch (Exception e) { // } return retMap; } }