0
关注
0
关注者

AEX交易所WSS问题

创建于: 2020-03-20 20:51:12, 更新于:
comments   25
hits   1073

AEX交易所我试了所有文档里的方法都不能用WSS获取数据 获取的数据都是空的 用JSON处理就报错 主要我是个新手 弄了一天了 好累 希望哪个高手能指点我一下 感激不尽! AEX交易所WSS文档 https://github.com/aextech/websocket-api-doc/blob/master/README.md

更多内容
全部留言
avatar of 小草
小草
看教程要仔细,例子有很多,另外应该需要海外托管者
2020-03-21 11:53:28
avatar of 小草
小草
/upload/asset/2f6f67e25a076fcecf6.png
2020-03-21 11:52:37
avatar of 小草
小草
测试了一下可以 ``` function main() { var client = Dial("wss://api.aex.zone/ws/v1"); client.write('{"cmd": {"type": 2},"type": 1,"pairs": [{ "market": "cnc", "coin": "btc" }]}') while (true) { var msg = client.read() var data = JSON.parse(msg) //把json字符串解析为可引用的object Log(data) // 处理data数据 } } ```
2020-03-21 11:51:33
avatar of 小草
小草
看了论坛进阶教程了吗,有介绍如何连接
2020-03-21 09:26:53
avatar of 小草
小草
可以
2020-03-24 17:31:21
avatar of flyju
flyju
try { data = JSON.parse(msg) } catch (err) { Log(err.message) } 是这样的吗?
2020-03-24 16:57:54
avatar of 小草
小草
可以试试,也可以用try catch 把错误的消息打出来看看
2020-03-24 09:24:36
avatar of flyju
flyju
程序偶尔会出错提示:SyntaxError: invalid json (at offset 1) at main (__FILE__:27) 并中断 根据错误提示应该是 client.read() 获取的data数据出错了 JSON无法处理 我这样写容错可以吗? var data = JSON.parse(msg) if (!data) { data = JSON.parse(msg) }
2020-03-23 22:07:11
avatar of flyju
flyju
用你说的方法搞定了 把我以前REST API的策略改成了 WSS API了 正在跑 就看是否稳定了 真的非常感谢您 您真的太有耐心了 您教会了我很多 再次感谢!
2020-03-23 15:25:42
avatar of 小草
小草
储存数据的,可以理解为字典结构(实际是object)
2020-03-23 15:16:53
avatar of flyju
flyju
哈哈 我明白了 是在判断语句后 把获取的data数据赋值给全局变量data对应的对象是吧?
2020-03-23 14:18:14
avatar of flyju
flyju
抱歉没看懂 设置这个全局变量 data 是干什么用的? data变量的结构对应的是什么?
2020-03-23 14:04:15
avatar of 小草
小草
没那么复杂,在main函数之前设置个全局变量 data = {btc:{buy:0,buyamout:0},eth:{buy:0,buyamout:0}}类似的结构
2020-03-23 10:22:08
avatar of flyju
flyju
function main() { var client = Dial("wss://api.aex.zone/ws/v1|reconnect=true"); client.write('{"cmd": {"type": 2},"type": 1,"pairs": [{ "market": "cnc", "coin": "eth" }]}') while (true) { var msg = client.read(); var data = JSON.parse(msg) var type = data.cmd.type if (type === 1) { var CNCBuy = data.bids[0].price var CNCBuyamount = data.bids[0].amount var CNCSell = data.asks[0].price var CNCSellamount = data.asks[0].amount } Log(CNCBuy) /*无法跨域调用变量 而且如果关注多个交易对 还需要判断其它条件才能筛选数据 涉及到后续的交易逻辑判断 需要跨域的变量就更多了 更复杂了 搞了一天了 好累啊*/ } }
2020-03-21 21:58:24
avatar of 小草
小草
先判断if('bids' in data),刚开始可能会返回其他数据,进阶教程里这种例子很多
2020-03-21 14:24:39
avatar of flyju
flyju
无法提取bids数组中的对象 var bids = data.bids[0] 报错 TypeError: cannot read property 0 of undefined at main (__FILE__:9) exchange.GetDepth(); 获取的深度数据都可以
2020-03-21 13:49:42
avatar of flyju
flyju
原来是这样啊 帮了我大忙 非常感谢(鞠躬)AEX官方的文档写的是真的垃圾 说的不明不白的
2020-03-21 11:55:52
avatar of flyju
flyju
Log出来的要不是空白 要不就是{} 没有深度数据 文档上也没说数据是压缩的啊 function main() { var client = Dial("wss://api.aex.zone/ws/v1") var msg = client.read() //var data = JSON.parse(msg) Log(client) Log(msg) //Log(data) } client 为空白 msg 为{} 用JSON.parse处理就出错
2020-03-21 11:46:02
avatar of flyju
flyju
Log出来的要不是空白 要不就是{} 没有深度数据 文档上也没说数据是压缩的啊
2020-03-21 11:42:46
avatar of 小草
小草
是不是要先关注交易对
2020-03-21 11:18:53
avatar of 小草
小草
检查一下是不是没有更新,都Log出来
2020-03-21 11:15:37
avatar of flyju
flyju
发送请求的都可以 但是深度数据不需要发送数据 文档上说的链接上后就会返回深度数据
2020-03-21 11:14:05
avatar of flyju
flyju
我又根据教程和文档试了 其它的发送命令的都可以 但是获取获取深度数据不需要发送命令 不知道怎么弄
2020-03-21 11:12:51
avatar of 小草
小草
你发送请求了吗
2020-03-21 11:12:03
avatar of flyju
flyju
看了 用Dial 其它的交易所可以链接也可以获取返回数据 AEX可以链接但是返回数据是空的 也无法用JSON处理 我不知道问题出在哪里
2020-03-21 10:15:06