以下用python编写的代码使用websocket来实时获取bitstamp交换的cryptocoin(以美元为单位)的价格。它在屏幕上打印下载的信息。
import pusherclient
import logging
def connect_handler(data):
trades_channel_ethusd = pusher.subscribe("live_trades_ethusd")
trades_channel_ethusd.bind('trade', trade_callback_ethusd)
def trade_callback_ethusd(data):
print(data)
pusher = pusherclient.Pusher("de504dc5763aeef9ff52")
pusher.connection.logger.setLevel(logging.WARNING)
pusher.connection.bind('pusher:connection_established', connect_handler)
pusher.connect()
如果我想对订单执行相同的操作,我们应该将" live_trades_ethusd" 更改为" diff_order_book_ethusd" 。 (https://www.bitstamp.net/websocket/)
但是,当我替换字符串时,它什么都不返回。这是一个websocket失败吗?
编辑:
正确的代码是:
import pusherclient
import logging
def connect_handler(data):
trades_channel_ethusd = pusher.subscribe("live_trades_ethusd")
trades_channel_ethusd.bind('data', trade_callback_ethusd)
def trade_callback_ethusd(data):
print(data)
pusher = pusherclient.Pusher("de504dc5763aeef9ff52")
pusher.connection.logger.setLevel(logging.WARNING)
pusher.connection.bind('pusher:connection_established', connect_handler)
pusher.connect()
答案 0 :(得分:2)
简答
将您的bind
行更改为以下
trades_channel_ethusd.bind('data', trade_callback_ethusd)
完整答案
订阅WebSocket时,请务必绑定到正确的事件名称。 “之前”调用(即live_trades_ethusd
)绑定到“交易”事件,其中diff_order_book_ethusd
调用绑定到“数据”事件