本文目录导读:

易欧(OKX)的 WebSocket 接口是其行情数据推送和用户私有频道订阅的核心技术,用于实现实时、低延迟的数据交互,以下是对易欧 WebSocket 的关键说明:
主要用途
- 公共频道:获取实时行情(如逐笔交易、深度盘口、K线、Ticker)。
- 私有频道:获取用户专属数据(如订单状态、持仓变化、资产变动)。
- 交易执行:通过私有频道发送并监控交易指令。
连接与端点
- 主端点:
wss://ws.okx.com:8443/ws/v5/public(公共频道) - 私有端点:
wss://ws.okx.com:8443/ws/v5/private(需要登录与签名) - 备用端点(部分网络环境下使用):
wss://wsaws.okx.com:8443/ws/v5/public(公共)、wss://wsaws.okx.com:8443/ws/v5/private(私有)
连接流程(以私有频道为例)
- 建立连接:WebSocket 客户端连接至私有端点。
- 登录认证:发送
login消息,内容包含apiKey、passphrase、timestamp及sign(签名算法为HMAC-SHA256,对timestamp + GET + /users/self/verify进行签名)。 - 订阅频道:认证成功后,发送
subscribe消息,传入参数(如{"op":"subscribe","args":[{"channel":"orders","instType":"SWAP"}]})。 - 接收数据:服务端持续推送更新,若需取消订阅,发送
unsubscribe。
常用频道(公共)
tickers:最新成交价、24小时涨幅等。books:订单簿,支持5档、400档或全量快照。candle{timeframe}:K线,如candle1m、candle5m。trades:最新成交记录。mark-price:标记价格。
注意事项
- 心跳:需每 20 秒发送
ping,服务端回复pong,连续 30 秒无响应会断开。 - 重连机制:建议实现
onClose回调中的自动重连(指数退避策略)。 - 限频:每 5 秒最多发送 100 条订阅/取消请求(私有频道相同)。
- 安全:API Key 应仅赋予所需权限(如仅读取,不交易),并存放在服务端环境变量中。
简单示例(JavaScript 伪代码)
const WebSocket = require('ws');
const ws = new WebSocket('wss://ws.okx.com:8443/ws/v5/private');
ws.on('open', () => {
const loginMsg = {
op: 'login',
args: [{
apiKey: 'YOUR_API_KEY',
passphrase: 'YOUR_PASSPHRASE',
timestamp: Date.now().toString(),
sign: generateSignature(timestamp, 'GET', '/users/self/verify')
}]
};
ws.send(JSON.stringify(loginMsg));
});
ws.on('message', (data) => {
console.log(JSON.parse(data));
});
官方文档与SDK
- 推荐直接查看 OKX API 文档(WebSocket 章节)获取最新定义。
- 官方提供多种语言 SDK(Python、Node.js、Java、Go),建议优先使用 SDK 来处理签名、重连等底层逻辑。
易欧 WebSocket 是用来实时获取行情和账户数据的标准协议接口,实现时需重点处理好认证签名、心跳维持以及断线重连,如果需要更具体的代码示例或某个频道的详细数据格式,可以进一步提供需求。