Type/to search
0
Follow
0
Followers
AEX 거래소 WSS 이슈
Help
Created 2020-03-20 20:51:12  
 25
 1668

AEX 거래소 저는 문서에 있는 모든 방법을 시도했지만 WSS로 데이터를 얻을 수 없었습니다. 데이터를 얻는 것은 아무것도 없었습니다. JSON으로 처리해서 실수를 해소했습니다. 저는 주로 초보자였습니다. 하루 동안 열심히 일했습니다. 어떤 전문가가 저를 가리키기를 바랬습니다. 감사합니다!
AEX 거래소 WSS 문서
https://github.com/aextech/websocket-api-doc/blob/master/README.md

Related Recommendations
Comment
All comments (25)

    看教程要仔细,例子有很多,另外应该需要海外托管者

    6 years ago

    img

    6 years ago

    测试了一下可以

    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数据 } }
    6 years ago

    无法提取bids数组中的对象 var bids = data.bids[0] 报错 TypeError: cannot read property 0 of undefined at main (FILE:9)
    exchange.GetDepth(); 获取的深度数据都可以

    6 years ago

    先判断if('bids' in data),刚开始可能会返回其他数据,进阶教程里这种例子很多

    6 years ago

    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)
    /无法跨域调用变量 而且如果关注多个交易对 还需要判断其它条件才能筛选数据 涉及到后续的交易逻辑判断 需要跨域的变量就更多了 更复杂了 搞了一天了 好累啊/
    }
    }

    6 years ago

    没那么复杂,在main函数之前设置个全局变量 data = {btc:{buy:0,buyamout:0},eth:{buy:0,buyamout:0}}类似的结构

    6 years ago

    程序偶尔会出错提示: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)
    }

    6 years ago

    可以试试,也可以用try catch 把错误的消息打出来看看

    6 years ago

    try {
    data = JSON.parse(msg)
    }
    catch (err) {
    Log(err.message)
    }
    是这样的吗?

    6 years ago

    可以

    6 years ago

    哈哈 我明白了 是在判断语句后 把获取的data数据赋值给全局变量data对应的对象是吧?

    6 years ago

    抱歉没看懂 设置这个全局变量 data 是干什么用的? data变量的结构对应的是什么?

    6 years ago

    储存数据的,可以理解为字典结构(实际是object)

    6 years ago

    用你说的方法搞定了 把我以前REST API的策略改成了 WSS API了 正在跑 就看是否稳定了 真的非常感谢您 您真的太有耐心了 您教会了我很多 再次感谢!

    6 years ago

    看了论坛进阶教程了吗,有介绍如何连接

    6 years ago

    我又根据教程和文档试了 其它的发送命令的都可以 但是获取获取深度数据不需要发送命令 不知道怎么弄

    6 years ago

    是不是要先关注交易对

    6 years ago

    原来是这样啊 帮了我大忙 非常感谢(鞠躬)AEX官方的文档写的是真的垃圾 说的不明不白的

    6 years ago

    看了 用Dial 其它的交易所可以链接也可以获取返回数据 AEX可以链接但是返回数据是空的 也无法用JSON处理 我不知道问题出在哪里

    6 years ago

    你发送请求了吗

    6 years ago

    发送请求的都可以 但是深度数据不需要发送数据 文档上说的链接上后就会返回深度数据

    6 years ago

    检查一下是不是没有更新,都Log出来

    6 years ago

    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处理就出错

    6 years ago

    Log出来的要不是空白 要不就是{} 没有深度数据 文档上也没说数据是压缩的啊

    6 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)