【问题标题】:Understanding CryptoCompare streamer data了解 CryptoCompare 流媒体数据
【发布时间】:2018-03-19 20:18:14
【问题描述】:

我正在学习使用 WebSockets(在 Java-Android 中),我从 CryptoCompare 服务器收到以下响应:

5~CCCAGG~XRP~USD~4~1521460342~1000~651.6800000000001~214344993~61477290.44395565~40404715.58782694~204630354.90428987~125295222.52928983~Bitfinex~40fe8
5~CCCAGG~BTC~USD~1~8345.49~1521460342~1~8330.5~214344994~73285.13728421592~609108591.9429483~199960.38011137667~1585164124.8472543~fe9
5~CCCAGG~ETH~USD~1~537.41~355733.2471545533~190548675.34079295~1348542.794115353~679086434.3118488~f01

Here 是他们的实用程序页面(我只需要使用CCC.CURRENT)。有人可以帮我理解如何阅读这个吗?我怎么知道哪个字段在哪里。这是他们的Api Doc 的链接。

实用程序页面使用十六进制和字段。例如..

price = 0x1
last_update = 0x8

现在,我该如何使用这些信息!?

提前谢谢你!

【问题讨论】:

  • 这个问题是关于javascript 而不是java?我看不出这个问题与java 有什么关系
  • 我试图在 Java 应用程序中转换从流中接收的信息(感谢 javaScript 中提供的实用程序)。基本上,我需要将 JS 函数 unpack 转换为 Java 方法。

标签: javascript java websocket


【解决方案1】:

(已编辑,因为您想在 Java 而不是 JS 中执行此操作)

(在您澄清问题后再次编辑。)

打包数据的代码是这样的:

var mask = 0;
var packedCurrent ='';
for(var property in this.FIELDS)
{
    if(currentObject.hasOwnProperty(property)){
        packedCurrent += '~'+currentObject[property];
        mask|=this.FIELDS[property];
    }
}
//removing first character beacsue it is a ~
return packedCurrent.substr(1)+'~'+mask.toString(16);

所以我们可以看到有一个从零开始的mask,如果正在发送属性,则正在设置位。为此,您需要熟悉在 Java 中进行位掩码。

这些属性将按照CCC.CURRENT.FIELDS 中设置的顺序添加到字符串中。

因此,您可以按照FIELDS 中的项目顺序(PRICE,然后是BID,然后是OFFER...)遍历掩码。每次找到 1 时,切掉字符串的第一部分(直到 ~)并根据找到的类型对其进行解析。

【讨论】:

  • 我也是这么想的。如何在 Java 中使用该函数?
  • 我有 0 个 JavaScript 经验
  • 顺便说一句。我需要使用 CCC.CURRENT.UNPACK 功能。不是贸易中的那个
  • 谢谢。我再过一遍。我会尽快通知你的:)
  • 已更新。希望这可以帮助。请更新您的问题,以表明您关心的是 CURRENT,而不是 TRADE。
猜你喜欢
  • 1970-01-01
  • 2016-09-13
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2010-12-28
  • 2015-03-25
相关资源
最近更新 更多