1. 访问地址

Pro 站行情请求地址为:wss://api.huobipro.com/ws

HADAX 站行情请求地址为:wss://api.hadax.com/ws

2. 数据压缩

WebSocket API 返回的所有数据都进行了 GZIP 压缩,需要 client 在收到数据之后解压,推荐使用pako。(【pako】 是一个支持压缩和解压 GZIP 的库)

3. WebSocket库

【ws】 是 Node.js 下的 WebSocket 库。

4. 心跳

WebSocket API 支持双向心跳,无论是 Server 还是 Client 都可以发起pingmessage,对方返回 pong message。

WebSocket Server 发送心跳:

{"ping": 18212558000}

WebSocket Client 应该返回:

{"pong": 18212558000}

注:返回的数据里面的'pong' 的值为收到的'ping' 的值

注:WebSocket Client 和 WebSocket Server 建立连接之后,WebSocket Server 每隔5s(这个频率可能会变化) 会向 WebSocket Client 发起一次心跳,WebSocket Client 忽略心跳2次后,WebSocket Server 将会主动断开连接。

例如

WebSocket Client 发送心跳:

{"ping": 18212553000}

注:发送的 message 里面,"ping" 的值必须为 Long 类型,否则返回错误信息:

{"ts": 1492420473027,"status": "error","err-code": "bad-request","err-msg": "invalid ping"}

WebSocket Server 会返回:

{"pong": 18212553000}

注:返回的数据里面的 'pong' 的值为收到的'ping' 的值

5. topic格式

订阅数据和请求数据都要使用topic,topic的语法如下:

topic 类型topic 语法描述

KLine

market.$symbol.kline.$period

$period 可选值:{ 1min, 5min, 15min, 30min, 60min, 1day, 1mon, 1week, 1year }

Market Depth

market.$symbol.depth.$type

$type 可选值:{ step0, step1, step2, step3, step4, step5 } (合并深度0-5);step0时,不合并深度

Trade Detail

market.$symbol.trade.detail

Market Detail

market.$symbol.detail

$symble是币种,可选值: { ethbtc, ltcbtc, etcbtc, bchbtc...... }

用户选择“合并深度”时,一定报价精度内的市场挂单将予以合并显示。合并深度仅改变显示方式,不改变实际成交价格。

6. 请求数据(req/rep)

请求数据,仅返回一次数据

请求数据的格式

{"req": "topic to req","id": "id generate by client"}

'req'的值为 topic 格式

正确请求数据的例子

{"req": "market.btcusdt.kline.1min","id": "id10"}

返回数据的例子:

{"status": "ok","rep": "market.btcusdt.kline.1min","tick": [

{"amount": 1.6206,"count": 3,"id": 1494465840,"open": 9887.00,"close": 9885.00,"low": 9885.00,"high": 9887.00,"vol": 16021.632026},

{"amount": 2.2124,"count": 6,"id": 1494465900,"open": 9885.00,"close": 9880.00,"low": 9880.00,"high": 9885.00,"vol": 21859.023500}

]

}

错误请求数据的例子

{"req": "market.invalidsymbo.kline.1min","id": "id10"}

返回的错误信息的例子:

{"status": "error","id": "id10","err-code": "bad-request","err-msg": "invalid topic market.invalidsymbol.trade.detail","ts": 1494483996521}

7. 订阅数据(sub/pub)

订阅数据的格式

成功建立和 WebSocket API 的连接之后,向 Server 发送如下格式的数据来订阅数据:

{"sub": "topic to sub","id": "id generate by client"}

正确订阅的例子

正确订阅:

{"sub": "market.btcusdt.kline.1min","id": "id1"}

"sub"值为 topic 格式

订阅成功返回数据的例子:

{"id": "id1","status": "ok","subbed": "market.btcusdt.kline.1min","ts": 1489474081631}

之后每当 KLine 有更新时,client 会收到数据,例子:

{"ch": "market.btcusdt.kline.1min","ts": 1489474082831,"tick": {"id": 1489464480,"amount": 0.0,"count": 0,"open": 7962.62,"close": 7962.62,"low": 7962.62,"high": 7962.62,"vol": 0.0}

}

tick 说明:

"tick": {"id": K线id,"amount": 成交量,"count": 成交笔数,"open": 开盘价,"close": 收盘价,当K线为最晚的一根时,是最新成交价"low": 最低价,"high": 最高价,"vol": 成交额, 即 sum(每一笔成交价 *该笔的成交量)

}

错误订阅的例子

错误订阅(错误的 symbol):

{"sub": "market.invalidsymbol.kline.1min","id": "id2"}

订阅失败返回数据的例子:

{"id": "id2","status": "error","err-code": "bad-request","err-msg": "invalid topic market.invalidsymbol.kline.1min","ts": 1494301904959}

错误订阅(错误的 topic):

{"sub": "market.btcusdt.kline.3min","id": "id3"}

订阅失败返回数据的例子:

{"id": "id3","status": "error","err-code": "bad-request","err-msg": "invalid topic market.btcusdt.kline.3min","ts": 1494310283622}

8. 取消订阅(unsub)

取消订阅的格式

WebSocket Client 订阅数据之后,可以取消订阅,取消订阅之后 WebSocket Server 将不会再发送该 topic 的数据,取消订阅的格式如下:

{"unsub": "topic to unsub","id": "id generate by client"}

正确取消订阅的例子:

{"unsub": "market.btcusdt.trade.detail","id": "id4"}

取消订阅成功返回信息的例子:

{"id": "id4","status": "ok","unsubbed": "market.btcusdt.trade.detail","ts" 1494326028889}

错误取消订阅的例子

错误取消订阅的例子(取消订阅一个尚未订阅的 topic):

{"unsub": "market.btcusdt.trade.detail","id": "id5"}

返回的错误信息的例子

{"id": "id5","status": "error","err-code": "bad-request","err-msg": "unsub with not subbed topic market.btcusdt.trade.detail","ts": 1494326217428}

错误取消订阅的例子(取消订阅一个不存在的 topic):

{"unsub": "not-exists-topic","id": "id5"}

返回的错误信息的例子:

{"id": "id5","status": "error","err-code": "bad-request","err-msg": "unsub with not subbed topic not-exists-topic","ts": 1494326318809}

java火币网做接口_火币网API文档——Websocket 请求与订阅示例相关推荐

  1. knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

    knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...

  2. java api文档_细说API – 文档和前后端协作

    在上一篇文章--<细说API – 重新认识RESTful>中介绍了如何理解和设计RESTful风格的API,现在我们来聊聊如何有效的呈现API文档,以及前后端协作的方式. 我经历过一些没有 ...

  3. 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!

    欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...

  4. 干掉 Swagger + Postman?测试接口直接生成API文档,这个国产文档工具真香!

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  5. 干掉Postman?测试接口直接生成API文档,这工具强烈推荐!

    最近被身边几个做开发的朋友安利了一款国产的 API 开发调试神器,真的有被惊艳到!!!简直不要太好用! 没想到,中国也有了比 Postman 还好用的软件! 这个 API 开发调试神器就是 ApiPo ...

  6. 干掉 Postman?测试接口直接生成 API 文档,这工具真香!

    作者:小 G 来源:GitHubDaily " 阅读本文大概需要 5 分钟. " 前阵子,偶然发现一款国产 API 接口开发调试神器,上手尝鲜之后,真的有被惊艳到,功能齐全,对中文 ...

  7. Java基础知识(二)—— API文档

    一.API是Java提供的基本编程接口,API文档详细说明了Java中常用类和方法的功能,开发者可以通过查阅API文档,调用应用程序接口(API)来编程.用于告诉开发者如何使用这些基础类及这些类中包含 ...

  8. java apidoc案例_java 自动生成api 文档 :apidoc

    官网:apidocjs 首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,适用于java项目.跟已有的项目框架没有任何关系 一.apidoc简介 apidoc通 ...

  9. 干掉 Postman?测试接口直接生成API文档,这工具真香!

    前几天粉丝群有小伙伴问,有啥好用的API文档工具推荐,无意间发现了一款工具,这里马不停蹄的来给大家分享一下. ShowDoc一个非常适合团队的在线API文档工具,也支持用docker自建文档服务,不过 ...

最新文章

  1. iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)
  2. MySQL-CentOS7通过YUM安装MySQL5.7.29
  3. 大一计算机理论考试知识点,计算机一级考试理论知识点整理.doc
  4. fiddler如何设置过滤https_Google Analytics如何设置含有过滤器的帐户数据视图
  5. loadrunner简单的例子(demo)
  6. nginx上搭建https服务
  7. LintCode MySQL 1968. 查询首两个字母在 ‘Db‘ 和 ‘Dy‘ 之间的课程名称(REGEXP正则)
  8. CVTE前端笔试编程题
  9. 不显示坐标刻度_Excel---不等距坐标刻度,你会吗?工作小技巧
  10. sql 只要一个字段相同则只显示一条数据_数据库
  11. CSU 1329: 一行盒子
  12. java多条件不定条件查询
  13. update语句更新多条记录, 标记下
  14. SpringMVC【校验器、统一处理异常、RESTful、拦截器】
  15. 计算机考研数学一大纲2016,2016考研大纲:计算机专业
  16. [云原生专题-41]:K8S - 核心概念 - Service业务的统一网关接口Ingress详解、安装、常见操作命令
  17. android调用系统自带的文件管理器,Android打开系统自带文件管理器,选择指定类型的文件...
  18. 阿里datav使用记录1
  19. {转载}Circos绘图(1)
  20. [无线玩家]玩转无线路由之DD-WRT基础扫盲

热门文章

  1. 产品研发过程管理专题——产品需求分析原则一
  2. 容器云平台在传统企业落地的一些思考和探索
  3. 十三周二次课(6月20日)
  4. mongodb数据导入hbase,spark读取hbase数据分析
  5. [原]Unity3D深入浅出 - 新版粒子系统 (Shuriken)
  6. linux 下tomcat开机自启动
  7. Google Native Client介紹
  8. 扩展 TextBox 控件 - 依 FormViewMode 来自行设定状态
  9. 华为机试HJ29: 字符串加解密
  10. php nginx错误,PHP/Nginx错误(Win)