Files
exchange_go/services/bitgetservice/bitget_market_future.go

62 lines
1.5 KiB
Go
Raw Normal View History

2025-10-14 19:58:59 +08:00
package bitgetservice
import (
"go-admin/config"
"github.com/go-admin-team/go-admin-core/logger"
)
type BitgetMarketFutureClient struct {
}
func (c *BitgetMarketFutureClient) 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.Info("收到市场数据: %s", message)
// 在这里处理市场数据
}
errorListener := func(message string) {
logger.Error("收到错误消息: %s", message)
}
client.SetMarketListeners(msgListener, errorListener)
// 4. 连接WebSocket
if err := client.ConnectMarketData(); err != nil {
logger.Error("连接市场数据失败: %v", err)
return err
}
// 5. 订阅合约行情
tickerListener := func(message string) {
logger.Info("收到BTC-USDT合约行情: %s", message)
}
params := []SubscribeReq{}
for _, v := range symbols {
params = append(params, SubscribeReq{
InstType: "USDT-FUTURES",
Channel: "ticker",
InstId: v,
})
}
if err := client.SubscribeMarketData(params, tickerListener); err != nil {
logger.Error("订阅合约行情失败: %v", err)
return err
}
return nil
}