1
zyy3
2025-11-05 91bbc719126310f09031e55967c059c0a01f20b1
trading-order-huobi/src/main/java/com/yami/trading/huobi/jsws/WebSocketClientBeanConfig.java
@@ -4,6 +4,8 @@
import com.yami.trading.huobi.websocket.constant.enums.EStockType;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@@ -15,13 +17,22 @@
@Component
public class WebSocketClientBeanConfig {
    // 注入Spring上下文,用于获取原型Bean
    @Autowired
    private ApplicationContext applicationContext;
    @Bean
    public Map<String, WebSocketClient> websocketRunClientMap() {
        Map<String, WebSocketClient> retMap = new HashMap<>(1);
        try {
            WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(EStockType.US.getWsUrl()), EStockType.US);
            // 关键:通过Spring上下文获取WebsocketRunClient实例(而非直接new)
            // 传入参数创建实例(需配合原型作用域)
            WebsocketRunClient websocketRunClient = applicationContext.getBean(
                    WebsocketRunClient.class,
                    new URI(EStockType.US.getWsUrl()),  // 第一个参数:serverUri
                    EStockType.US                       // 第二个参数:eStockType
            );
            websocketRunClient.connect();
            websocketRunClient.setConnectionLostTimeout(0);
            startHeartbeatThread(websocketRunClient);