首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Poloniex新Websocket API

Poloniex新Websocket API
EN

Stack Overflow用户
提问于 2018-08-29 15:33:03
回答 1查看 799关注 0票数 0

我正在尝试使用new websocket API with Poloniex。Wamp现在被弃用了,关于如何对实时公共数据进行简单调用的信息非常少,例如卷等。

我找到了这段代码,它似乎实现了这个套接字,但却出现在bitestream中。当我运行代码时,它很好地调用了头,也很好地获得了响应头,看起来像是发送和接收数据,但随后关闭了套接字。如何订阅音量频道并解码流媒体数据?

代码语言:javascript
复制
import websocket
import threading
import time
import json
from threading import Thread


def on_message(ws, message):
    print(message)

def on_error(ws, error):
    print(error)

def on_close(ws):
    print("### closed ###")


def on_open(ws):
    print("ON OPEN")
    def run(*args):
        ws.send(json.dumps({'command':'subscribe','channel':1003}))
        while True:
            time.sleep(1)
        ws.close()
        print("thread terminating...")
    threading.Thread(target=run).start()


if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://api2.poloniex.com/",
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close)

    ws.on_open = on_open
    ws.run_forever()


Am expecting a streaming connection to volume data but get this:

ON OPEN
send: b"\x81\xa9.)\x1d\xb8U\x0b~\xd7CD|\xd6J\x0b'\x98\x0cZh\xda]Jo\xd1LL?\x94\x0e\x0b~\xd0OGs\xddB\x0b'\x98\x1f\x19-\x8bS"
[1003,1]
unorderable types: float() > NoneType()
send: b'\x88\x82fWPGe\xbf'
### closed ###

Polo似乎认为我订阅了:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 00:01:09

很奇怪,因为我不能重现你的错误,试试这个:

代码语言:javascript
复制
import websocket
import threading
import time
import json
from threading import Thread


def on_message(ws, message):
    json_msg = json.loads(message)
    channel_id = int(json_msg[0])
    if (channel_id==1003) and len(json_msg)>2:
        print("volume update")
        print(json_msg[2][2])


def on_error(ws, error):
    print(error)

def on_close(ws):
    print("### closed ###")


def on_open(ws):
    print("ON OPEN")
    def run(*args):
        ws.send(json.dumps({'command':'subscribe','channel':"1003"}))

    threading.Thread(target=run).start()


if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://api2.poloniex.com/",
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close)

    ws.on_open = on_open
    ws.run_forever()

这为您提供了:

代码语言:javascript
复制
[...]
ON OPEN
send: '\x81\xab\xc0\xe6~#\xbb\xc4\x1dL\xad\x8b\x1fM\xa4\xc4D\x03\xe2\x95\x0bA\xb3\x85\x0cJ\xa2\x83\\\x0f\xe0\xc4\x1dK\xa1\x88\x10F\xac\xc4D\x03\xe2\xd7N\x13\xf3\xc4\x03'
volume update
{u'USDT': u'5340084.934', u'ETH': u'914.931', u'XMR': u'194.895', u'BTC': u'1927.227', u'USDC': u'1275367.951'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52071919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档