README_ASTER_WS.md 2.3 KB

Aster DEX WebSocket 配置说明

环境变量配置

根据 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

使用方法

  1. 复制 env.example.env 并填入真实配置:

    cp env.example .env
    
  2. 运行 WebSocket 示例:

    tsx examples/aster_ws_example.ts
    

WebSocket 订阅格式

根据 Aster 文档,支持的订阅格式:

// 行情数据
{ channel: 'tickers', symbol: 'BTCUSDT' }

// 交易数据
{ channel: 'trades', symbol: 'BTCUSDT' }

// 深度数据
{ channel: 'books', symbol: 'BTCUSDT', depth: 20 }

// K线数据
{ channel: 'klines', symbol: 'BTCUSDT', interval: '1m' }

鉴权流程

WebSocket 连接后会自动进行鉴权:

  1. 构建登录参数:user, signer, timestamp, nonce
  2. 使用与 REST API 相同的签名逻辑:
    • 规范化参数并转换为字符串
    • 按 ASCII 排序生成紧凑 JSON
    • ABI 编码
    • Keccak 哈希
    • EIP-191 签名
  3. 发送登录消息到服务器:

    {
    "method": "login",
    "params": {
    "user": "0x63DD5aCC6b1aa0f563956C0e534DD30B6dcF7C4e",
    "signer": "0x21cF8Ae13Bb72632562c6Fff438652Ba1a151bb0",
    "timestamp": 1234567890,
    "nonce": "1234567890123456",
    "signature": "0x..."
    }
    }
    

事件处理

客户端会发出以下事件:

  • open: 连接建立
  • close: 连接关闭
  • error: 连接错误
  • ticker: 行情数据
  • trade: 交易数据
  • depth: 深度数据
  • kline: K线数据
  • raw: 原始消息