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); try { WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("IN_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) { } 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) { } return retMap; } }