我正在尝试订阅 Bitfinex.com websocket API 公共频道 BTCUSD
。
这是代码:
from websocket import create_connection
ws = create_connection("wss://api2.bitfinex.com:3000/ws")
ws.connect("wss://api2.bitfinex.com:3000/ws")
ws.send("LTCBTC")
while True:
result = ws.recv()
print ("Received '%s'" % result)
ws.close()
我相信 ws.send("BTCUSD")
订阅公共频道是什么?我收到一条消息,我认为是在确认订阅 ({"event":"info","version":1}
,但之后我没有得到数据流。我错过了什么?
更新:这是最终有效的代码。
import json
from websocket import create_connection
ws = create_connection("wss://api2.bitfinex.com:3000/ws")
#ws.connect("wss://api2.bitfinex.com:3000/ws")
ws.send(json.dumps({
"event": "subscribe",
"channel": "book",
"pair": "BTCUSD",
"prec": "P0"
}))
while True:
result = ws.recv()
result = json.loads(result)
print ("Received '%s'" % result)
ws.close()
原文由 Emily 发布,翻译遵循 CC BY-SA 4.0 许可协议
文档 说所有消息都是 JSON 编码的。
您需要导入
json
库,以对您的消息进行编码和解码。该文档 提到了三个公共频道:
book
,trades
和ticker
。如果你想订阅一个频道,你需要发送一个订阅事件。
根据 文档,订阅 LTCBTC 交易的示例:
然后您还需要解析传入的 JSON 编码消息。