我正在学习使用WebSockets(在Java-Android中),我从CryptoCompare服务器得到以下响应:
vpn.ii.uni.wroc.pl.
Here是他们的实用程序页面(我只需要使用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
)。有人可以帮我理解如何阅读这个吗?我怎么知道哪个字段在哪里。这是他们Api Doc的链接。
实用程序页面使用十六进制和字段。例如..
CCC.CURRENT
现在,我如何使用此信息!?
提前谢谢!
答案 0 :(得分: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时,都会删除字符串的第一部分(直到~
)并根据您找到的类型进行解析。