> For the complete documentation index, see [llms.txt](https://docs.infoway.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infoway.io/getting-started/api-limitation/websocket.md).

# WebSocket限制

HTTP 频率见 [HTTP接口限制](/getting-started/api-limitation/http.md)。错误码见 [WebSocket错误码](/getting-started/error-codes/websocket.md)。心跳见 [心跳机制](/websocket-api/heartbeat.md)。地址见 [行情地址说明](/getting-started/api-endpoints.md)。

#### WebSocket 连接数限制

| 套餐    | 频率限制说明                                                    |
| ----- | --------------------------------------------------------- |
| 免费    | 支持 1 个 Websocket 连接额度（多市场通道见下方）。订阅总数不超过 10 个产品，且受免费标的权限限制 |
| 基础    | 支持 1 个 Websocket 连接。所有连接的订阅总数不超过 200 个产品                  |
| 高级    | 支持 2 个 Websocket 连接。每个连接最多 600 个不重复产品，全部连接订阅总数不超过 800     |
| 专业    | 支持 9 个 Websocket 连接。每个连接最多 600 个不重复产品，全部连接订阅总数不超过 5000    |
| 市场套餐  | 按市场产品数分配连接。每根连接固定 600，连接数 = 市场总产品数 / 600 向上取整             |
| 自定义套餐 | 可自选 HTTP 频率与可订阅产品总数。Websocket 连接数计算同市场套餐                  |

#### Websocket 订阅请求频率限制

* 同一连接的业务文本帧合计（订阅、取消订阅、应用心跳）按自然分钟限制为 **一分钟 60 次**。WebSocket 协议 Ping/Pong 不计入此文本请求额度；连接建立所在分钟还会计入一次初始化请求。
* 超出将导致连接断开。

#### WebSocket 订阅总数

订阅总数是可通过 WS 订阅的交易品种上限。同一连接对同一代码同时订阅成交、盘口、多个 K 线周期，只计一个产品；相同代码在不同连接上订阅，会分别占用订阅数。单连接超限返回 `505`，全部连接合计超限返回 `516`。

免费套餐还受可订阅标的权限限制。即使数量未超限，也不代表能订阅任意标的；请以当前账户可用范围为准。一次请求包含无权限标的时，本次整批订阅被拒，返回带 `Subscribe fail:` 前缀的 `521` 错误；应调整代码或套餐后再请求。

标准付费套餐和自定义套餐的 WS 可按套餐权限订阅支持的品种分类（外汇 / 股票 / 期货等）。股票套餐只能订阅所选市场，例如全 A 股套餐只能订 A 股。

#### WebSocket 连接数

系统按套餐订阅总数分配连接。每条连接最多 600 个订阅。超过 600 会提供多条连接。

示例：

* 订阅总数 200 → 1 条连接
* 订阅总数 800 → 2 条连接
* 订阅总数 5000 → 9 条连接

多条连接时，每条可自由分配，只要不超过单连接 600 以及套餐总数。

#### 行情多市场通道

以下每个 `business` 需要分别建立 WebSocket 连接，按市场发送订阅。套餐连接额度与订阅总量仍需同时满足；多个市场连接不是一条物理连接：

* 股票：`wss://data.infoway.io/ws?business=stock`
* 加密货币：`wss://data.infoway.io/ws?business=crypto`
* 外汇与商品期货：`wss://data.infoway.io/ws?business=common`
* 日本：`wss://data.infoway.io/ws?business=japan`
* 印度：`wss://data.infoway.io/ws?business=india`
* 韩国：`wss://data.infoway.io/ws?business=korea`
* 台湾：`wss://data.infoway.io/ws?business=taiwan`

Query 带 `apikey`。

#### 新闻通道单独计连接

```
wss://data.infoway.io/news?apikey=<your-api-key>
```

新闻需要单独授权。无权限时握手 HTTP 401。一条 key 通常只能有一条新闻连接。**新闻连接的授权与限额独立于上述行情通道。**

协议：订阅 `10020` → 应答 `10021` → 推送 `10022`；取消 `11020`。

#### 连接成功

`business=stock` 连上后可能先收到一段纯文本欢迎语，再收到：

```json
{"code":200,"msg":"ws connect success"}
```

`code=200` 表示连接成功，不要当错误处理。

#### 订错市场

`10001` / `10004` / `10007` 的 `ok` 只表示帧被收下。`business` 与品种市场不一致时可能 ack 但不推数据。
