根据 Aster DEX WebSocket API 文档,需要配置以下环境变量:
# WebSocket 连接地址
ASTER_WS_URL=wss://ws.aster.finance/futures
# 鉴权信息(使用 signer 信息)
ASTER_ORDER_USER=0x63DD5aCC6b1aa0f563956C0e534DD30B6dcF7C4e
ASTER_ORDER_SIGNER=0x21cF8Ae13Bb72632562c6Fff438652Ba1a151bb0
PRIVATE_KEY=0x4fd0a42218f3eae43a6ce26d22544e986139a01e5b34a62db53757ffca81bae1
# HTTP API 基础地址
ASTER_HTTP_BASE=https://fapi.asterdex.com
# WebSocket 连接参数
ASTER_WS_PING_INTERVAL=30000
ASTER_WS_PONG_TIMEOUT=10000
ASTER_WS_RECONNECT_INTERVAL=5000
ASTER_WS_MAX_RECONNECT_ATTEMPTS=10
# 订阅的交易对(逗号分隔)
ASTER_SUBSCRIBE_SYMBOLS=BTCUSDT,ETHUSDT,SANDUSDT
# 日志级别
LOG_LEVEL=info
复制 env.example 为 .env 并填入真实配置:
cp env.example .env
运行 WebSocket 示例:
tsx examples/aster_ws_example.ts
根据 Aster 文档,支持的订阅格式:
// 行情数据
{ channel: 'tickers', symbol: 'BTCUSDT' }
// 交易数据
{ channel: 'trades', symbol: 'BTCUSDT' }
// 深度数据
{ channel: 'books', symbol: 'BTCUSDT', depth: 20 }
// K线数据
{ channel: 'klines', symbol: 'BTCUSDT', interval: '1m' }
WebSocket 连接后会自动进行鉴权:
user, signer, timestamp, nonce发送登录消息到服务器:
{
"method": "login",
"params": {
"user": "0x63DD5aCC6b1aa0f563956C0e534DD30B6dcF7C4e",
"signer": "0x21cF8Ae13Bb72632562c6Fff438652Ba1a151bb0",
"timestamp": 1234567890,
"nonce": "1234567890123456",
"signature": "0x..."
}
}
客户端会发出以下事件:
open: 连接建立close: 连接关闭error: 连接错误ticker: 行情数据trade: 交易数据depth: 深度数据kline: K线数据raw: 原始消息