| | |
| | | |
| | | private static final int HEARTBEAT_TIMEOUT = 10; |
| | | |
| | | /** 模拟盘公共 WS 地址 */ |
| | | private static final String WS_PUBLIC_URL_SIM = "wss://wspap.okx.com:8443/ws/v5/public"; |
| | | /** 实盘公共 WS 地址 */ |
| | | private static final String WS_PUBLIC_URL_PROD = "wss://ws.okx.com:8443/ws/v5/public"; |
| | | /** 模拟盘业务 WS 地址(K线等行情数据) */ |
| | | private static final String WS_BUSINESS_URL_SIM = "wss://wspap.okx.com:8443/ws/v5/business"; |
| | | /** 实盘业务 WS 地址(K线等行情数据) */ |
| | | private static final String WS_BUSINESS_URL_PROD = "wss://ws.okx.com:8443/ws/v5/business"; |
| | | /** 模拟盘私有 WS 地址 */ |
| | | private static final String WS_PRIVATE_URL_SIM = "wss://wspap.okx.com:8443/ws/v5/private"; |
| | | /** 实盘私有 WS 地址 */ |
| | |
| | | System.setProperty("https.protocols", "TLSv1.2,TLSv1.3"); |
| | | String wsUrl; |
| | | if (account.isAccountType()) { |
| | | wsUrl = isPublic ? WS_PUBLIC_URL_PROD : WS_PRIVATE_URL_PROD; |
| | | wsUrl = isPublic ? WS_BUSINESS_URL_PROD : WS_PRIVATE_URL_PROD; |
| | | } else { |
| | | wsUrl = isPublic ? WS_PUBLIC_URL_SIM : WS_PRIVATE_URL_SIM; |
| | | wsUrl = isPublic ? WS_BUSINESS_URL_SIM : WS_PRIVATE_URL_SIM; |
| | | } |
| | | URI uri = new URI(wsUrl); |
| | | |
| | |
| | | isConnected.set(false); |
| | | } |
| | | }; |
| | | webSocketClient.setConnectionLostTimeout(0); |
| | | webSocketClient.connect(); |
| | | } catch (URISyntaxException e) { |
| | | log.error("[{}] URI格式错误", logPrefix, e); |
| | |
| | | |
| | | private void handleMessage(String message) { |
| | | try { |
| | | if ("pong".equals(message)) { |
| | | log.debug("[{}] 收到 pong", logPrefix); |
| | | return; |
| | | } |
| | | JSONObject response = JSON.parseObject(message); |
| | | String event = response.getString("event"); |
| | | String op = response.getString("op"); |