zj
2026-01-11 28701d9c708089cd64e3dc813ad1d9079de6528a
src/main/java/com/nq/ws/JPWebsocketRunClient.java
copy from src/main/java/com/nq/ws/TWWebsocketRunClient.java copy to src/main/java/com/nq/ws/JPWebsocketRunClient.java
File was copied from src/main/java/com/nq/ws/TWWebsocketRunClient.java
@@ -24,10 +24,10 @@
import java.util.*;
@Slf4j
public class TWWebsocketRunClient extends WebSocketClient {
public class JPWebsocketRunClient extends WebSocketClient {
    private EStockType eStockType;
    public TWWebsocketRunClient(URI serverUri,
    public JPWebsocketRunClient(URI serverUri,
                                EStockType eStockType
    ) {
        super(serverUri);
@@ -55,6 +55,7 @@
                    //send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()).getBytes());
                    send("heartbeat");
                }
            }
        }, 0, 3000); // 每3秒发送一次心跳消息
    }
@@ -62,10 +63,10 @@
    @Override
    public void onMessage(String message) {
        if (message.contains("身份验证成功") || message.contains("pong") || message.contains("身份验证失败") || message.contains("ws连接点只能有一个")) {
            System.out.println("tw" + message);
            System.out.println("JP:" + message);
            return;
        }
        System.out.println("tw2" + message);
        System.out.println("JP2" + message);
        Map<String, String> stringObjectMap = jsonToMap(message);
        StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
        stockRealTimeBean.setPid(stringObjectMap.get("Id").toString());
@@ -77,7 +78,7 @@
        stockRealTimeBean.setPc(stringObjectMap.get("Chg").toString());
        stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct").toString()+"%");
        stockRealTimeBean.setTime(stringObjectMap.get("Time").toString());
        RedisKeyUtil.setCacheRealTimeStock(EStockType.TW,stockRealTimeBean);
        RedisKeyUtil.setCacheRealTimeStock(EStockType.JP,stockRealTimeBean);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            if(!stockRealTimeBean.getPcp().contains("-")){
@@ -86,9 +87,9 @@
            String json = objectMapper.writeValueAsString(stockRealTimeBean);
            sendLoca(json);
            StockRealTimeBean stockDetailBean =  new Gson().fromJson(message, StockRealTimeBean.class);
            RedisKeyUtil.setCacheRealTimeStock(EStockType.TW,stockDetailBean);
            RedisKeyUtil.setCacheRealTimeStock(EStockType.JP,stockDetailBean);
        } catch (JsonProcessingException e) {
            log.error("websocket 台湾股票 消息错误:{}", e.getMessage());
            log.error("websocket 日本股票 消息错误:{}", e.getMessage());
        }
    }
@@ -100,12 +101,12 @@
    @Override
    public void onClose(int i, String s, boolean b) {
        log.info("websocket 台湾股票 关闭 {} ", i);
        log.info("websocket 日本股票 关闭 {} ", i);
    }
    @Override
    public void onError(Exception e) {
        log.info("websocket 台湾股票 错误{}", e.getMessage());
        log.info("websocket 日本股票 错误{}", e.getMessage());
    }
    public void sendLoca(String message) {