# Websocket推送

**概述**

WebSocket是HTML5一种新的协议（Protocol）。它实现了客户端与服务器全双工通信， 使得数据可以快速地双向传播。通过一次简单的握手就可以建立客户端和服务器连接， 服务器根据业务规则可以主动推送信息给客户端。其优点如下：

* 客户端和服务器进行数据传输时，请求头信息比较小，大概2个字节。
* 客户端和服务器皆可以主动地发送数据给对方。
* 不需要多次创建TCP请求和销毁，节约宽带和服务器的资源。

**强烈建议开发者使用WebSocket API获取市场行情和买卖深度等信息。**

**基本信息**

* 现货行情基础站点: <kbd>\<wss\://openapi.aivora.com/spot/ws></kbd>
* 合约行情基础站点: <kbd>\<wss\://openapi.aivora.com/futures/ws></kbd>
* 返回数据除了心跳数据都会二进制压缩(用户需要通过Gzip算法进行解压)

**参数示例**

eventchanneldescription

`sub`

`market_$symbol_depth_0.1`

`订阅深度（以BTCUSDT为例，具体币对深度需查询对应接口`

`unsub`

`market_$symbol_depth_0.1`

`取消订阅深度`

`sub`

`market_$symbol_symbol_deals`

`订阅实时成交`

`unsub`

`market_$symbol_symbol_deals`

`取消订阅实时成交`

`sub`

`market_$symbol`

`订阅24h行情数据`

`unsub`

`market_$symbol`

`取消订阅24h行情数据`

`sub`

`market_$symbol_kline_1min`

`订阅1min实时k线信息`

<a class="button secondary">复制</a>

```
//30s内发送心跳包
{
    "ping": "ping"
}
```

**订阅全量深度**

* 订阅数据样例

<a class="button secondary">复制</a>

```
{
    "event":"sub",
    "params":{
        "channel":"market_$symbol_depth_0.1" // $symbol E.g. 币币:btcusdt 合约:e_btcusdt
    }
}
```

* 返回买卖盘最多30条数据

<a class="button secondary">复制</a>

```
{
    "channel":"market_btcusdt_depth_0.1",
    "ts":1506584998239,
    "tick":{
        "asks":[ //卖盘
            [10000.19,0.93],
            [10001.21,0.2],
            [10002.22,0.34]
        ],
        "buys":[ //买盘
            [9999.53,0.93],
            [9998.2,0.2],
            [9997.19,0.21]
        ]
    }
}
```

**订阅实时成交**

* 订阅数据样例

<a class="button secondary">复制</a>

```
{
    "event":"sub",
    "params":{
        "channel":"market_$symbol_deals" // $symbol E.g. 币币:btcusdt 合约:e_btcusdt
    }
}
```

* 返回

<a class="button secondary">复制</a>

```
{
    "channel":"market_$symbol_deals",
    "ts":1506584998239,//请求时间
    "tick":{
        "id":12121,//data中最大交易ID
        "ts":1506584998239,//data中最大时间
        "data":[
            {
                "side":"buy",//买卖方向buy,sell
                "price":32.233,//单价
                "vol":232,//数量
                "amount":323,//总额
                "ds":'2017-09-10 23:12:21'
            }
        ]
    }
}
```

**订阅k线行情**

* 订阅数据样例

<a class="button secondary">复制</a>

```
{
    "event":"sub",
    "params":{
        "channel":"market_$symbol_kline_[1min/5min/15min/30min/60min/1day/1week/1month]" // $symbol E.g. btcusdt
    }
}
```

* 返回

<a class="button secondary">复制</a>

```
{
    "channel":"market_$symbol_kline_1min", //1min代表1分钟k线
    "ts":1506584998239,//请求时间
    "tick":{
        "id":1506602880,//时间刻度起始值
        "vol":1212.12211,//交易量
        "open":2233.22,//开盘价
        "close":1221.11,//收盘价
        "high":22322.22,//最高价
        "low":2321.22//最低价
    }
}
```

**订阅24h行情ticker**

* 订阅数据样例

<a class="button secondary">复制</a>

```
{
    "event":"sub",
    "params":{
        "channel":"market_$symbol" // $symbol E.g. 币币:btcusdt 合约:e_btcusdt
    }
}
```

* 返回

<a class="button secondary">复制</a>

```
{
    "channel":"market_$symbol",
    "ts":1506584998239,//请求时间
    "tick":{
        "amount":123.1221,//交易额
        "vol":1212.12211,//交易量
        "open":2233.22,//开盘价
        "close":1221.11,//收盘价
        "high":22322.22,//最高价
        "low":2321.22,//最低价
        "rose":-0.2922,//涨幅
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaisensei34.gitbook.io/aivora-docs/websocket-tui-song.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
