package bitgetservice import ( "go-admin/config" "github.com/go-admin-team/go-admin-core/logger" ) type BitgetMarketSpotClient struct { } func (c *BitgetMarketSpotClient) Subscribe(symbols []string) error { // 1. 创建Bitget客户端(不需要API密钥用于公开数据) client := &BitgetClient{} // 初始化公开行情客户端 marketConfig := DefaultMarketConfig() client.marketClient = NewBitgetMarketClient(marketConfig) if config.ExtConfig.ProxyUrl != "" { client.SetMarketProxy("", config.ExtConfig.ProxyUrl) } // 3. 设置消息监听器 msgListener := func(message string) { logger.Infof("收到市场数据: %s", message) // 在这里处理市场数据 } errorListener := func(message string) { logger.Errorf("收到错误消息: %s", message) } client.SetMarketListeners(msgListener, errorListener) // 4. 连接WebSocket if err := client.ConnectMarketData(); err != nil { logger.Errorf("连接市场数据失败: %v", err) return err } // 5. 订阅现货行情 tickerListener := func(message string) { logger.Infof("收到行情: %s", message) } params := []SubscribeReq{} for _, v := range symbols { params = append(params, SubscribeReq{ InstType: "SPOT", Channel: "ticker", InstId: v, }) } if err := client.SubscribeMarketData(params, tickerListener); err != nil { logger.Errorf("订阅现货行情失败: %v", err) return err } return nil }