Verwenden Sie LiquidTap Python Client ③

Inhaltsverzeichnis

Einführung

Lassen Sie uns die API von "Liquid by Quoine" ~ Teil 3 ~ treffen

Überprüfen Sie das Protokoll von "Liquid by Quoine"

Als ich versuchte, das in Using LiquidTap Python Client ① erstellte Protokoll price.py in eine Datei zu kopieren, fand ich zufällig die LiquidTap-Bibliothek im Protokoll. Da das Protokoll ausgespuckt wurde, werfen wir einen Blick auf den Ausgabeinhalt. (2020.03.04)

Bevor Sie sich das Liquid Tap-Protokoll ansehen.

Dies ist der Code und die Konfigurationsdatei, die zum Überprüfen des Protokolls vorbereitet wurden.

price.py


import liquidtap
import time
from logging import config

def update_callback_buy(data):
  print("buy:" + data)

def update_callback_sell(data):
  print("sell:" + data)

def on_connect(data):
  tap.pusher.subscribe("price_ladders_cash_btcjpy_buy").bind('updated', update_callback_buy)
  tap.pusher.subscribe("price_ladders_cash_btcjpy_sell").bind('updated', update_callback_sell)

if __name__ == "__main__":
  config.fileConfig('logging.conf')

  tap = liquidtap.Client()
  tap.pusher.connection.bind('pusher:connection_established', on_connect)
  tap.pusher.connect()

  while True: #Endlosschleife
    time.sleep(1)

Dies ist eine Protokolleinstellungsdatei. (Weil ich versucht habe, mit der Konsole und der Protokolldatei zu überprüfen, ...

logging.conf


[loggers]
keys=root

[handlers]
keys=fileHandler,consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=INFO
handlers=fileHandler,consoleHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=handlers.RotatingFileHandler
level=INFO
formatter=simpleFormatter
args=("logs/default.log", "a", 1024*1024, 5)

[formatter_simpleFormatter]
#Geben Sie das Format an(https://docs.python.jp/3/library/logging.html#logrecord-attributes)
format=%(asctime)s %(levelname)-8s [%(module)s#%(funcName)s %(lineno)d] %(message)s

Zeigen Sie das Ausgabe-Liquid Tap-Protokoll an

Verbindung (von Websocket)

Hier in der Gegend

tap = liquidtap.Client() tap.pusher.connection.bind('pusher:connection_established', on_connect) tap.pusher.connect()

2020-03-04 19:54:17,928 INFO     [connection#_on_open 129] Connection: Connection opened
2020-03-04 19:54:17,945 INFO     [connection#_on_message 143] Connection: Message - {"data":"{\"activity_timeout\":120,\"socket_id\":\"0600663276.5838793824\"}","event":"pusher:connection_established"}

Es scheint ein Mechanismus (?) Zu sein, um sich mit _on_open zu verbinden und eine Nachricht mit _on_message zu empfangen. Sie können die Socket-ID und die Zeitüberschreitungszeit lesen.

Senden Sie Abonnieren und erhalten Sie Ergebnisse

Hier in der Gegend

tap.pusher.subscribe("price_ladders_cash_btcjpy_buy").bind('updated', update_callback_buy) tap.pusher.subscribe("price_ladders_cash_btcjpy_sell").bind('updated', update_callback_sell)

2020-03-04 19:54:17,947 INFO     [connection#send_event 217] Connection: Sending event - {"event": "pusher:subscribe", "data": {"channel": "price_ladders_cash_btcjpy_buy"}}
2020-03-04 19:54:17,950 INFO     [connection#send_event 217] Connection: Sending event - {"event": "pusher:subscribe", "data": {"channel": "price_ladders_cash_btcjpy_sell"}}
2020-03-04 19:54:17,963 INFO     [connection#_on_message 143] Connection: Message - {"channel":"price_ladders_cash_btcjpy_buy","data":{},"event":"pusher_internal:subscription_succeeded"}
2020-03-04 19:54:17,972 INFO     [connection#_on_message 143] Connection: Message - {"channel":"price_ladders_cash_btcjpy_sell","data":{},"event":"pusher_internal:subscription_succeeded"}

PING/PONG

LiquidTap kann getrennt werden, wenn keine Kommunikation besteht (activity_timeout-Wert?). Deshalb senden wir regelmäßig PING und empfangen PONG. https://developers.liquid.com/#ping-/-pong

2020-03-04 19:54:17,942 INFO     [connection#send_ping 224] Connection: ping to pusher
2020-03-04 19:54:17,961 INFO     [connection#_pong_handler 276] Connection: pong from pusher

Ich sende und empfange wirklich PING / PONG. .. ..

Preisempfang

2020-03-04 19:54:17,966 INFO     [connection#_on_message 143] Connection: Message - {"channel":"price_ladders_cash_btcjpy_buy","data":"[[\"942742.00000\",\"0.01812556\"],[\"942740.00000\",\"0.00100000\"],[\"942731.00000\",\"0.01935063\"],[\"942700.00000\",\"0.01000000\"],[\"942678.00000\",\"0.00200000\"],[\"942667.00000\",\"0.00100000\"],[\"942662.00000\",\"0.01935057\"],[\"942653.00000\",\"0.03708848\"],[\"942640.00000\",\"0.01200000\"],[\"942639.00000\",\"0.10468137\"],[\"942615.00000\",\"0.18070000\"],[\"942613.00000\",\"0.02000000\"],[\"942577.00000\",\"0.04000000\"],[\"942567.00000\",\"0.04643000\"],[\"942551.00000\",\"0.50000013\"],[\"942524.00000\",\"0.00500000\"],[\"942502.00000\",\"0.01000000\"],[\"942490.00000\",\"0.00100000\"],[\"942467.00000\",\"0.00200000\"],[\"942459.00000\",\"0.10000000\"],[\"942451.00000\",\"0.22500000\"],[\"942424.00000\",\"0.03000000\"],[\"942419.00000\",\"1.50000000\"],[\"942409.00000\",\"0.01000000\"],[\"942393.00000\",\"0.15000000\"],[\"942351.00000\",\"0.02000000\"],[\"942328.00000\",\"0.02000000\"],[\"942290.00000\",\"1.00000013\"],[\"942275.00000\",\"0.10000000\"],[\"942240.00000\",\"0.00100000\"],[\"942144.00000\",\"0.05000000\"],[\"942129.00000\",\"0.01000000\"],[\"942071.00000\",\"0.07000000\"],[\"942059.00000\",\"0.09044679\"],[\"941982.00000\",\"0.02000000\"],[\"941966.00000\",\"0.00533240\"],[\"941862.00000\",\"0.24000000\"],[\"941780.00000\",\"0.01510000\"],[\"941779.00000\",\"4.00000000\"],[\"941771.00000\",\"0.05000000\"]]","event":"updated"}
2020-03-04 19:54:17,975 INFO     [connection#_on_message 143] Connection: Message - {"channel":"price_ladders_cash_btcjpy_sell","data":"[[\"943079.00000\",\"0.00200000\"],[\"943080.00000\",\"0.03708848\"],[\"943084.00000\",\"0.01935057\"],[\"943092.00000\",\"0.84000000\"],[\"943099.00000\",\"0.00500000\"],[\"943101.00000\",\"0.00200000\"],[\"943104.00000\",\"0.00100000\"],[\"943105.00000\",\"0.00696180\"],[\"943109.00000\",\"0.05000000\"],[\"943140.00000\",\"0.09739999\"],[\"943200.00000\",\"0.04000000\"],[\"943219.00000\",\"0.05000000\"],[\"943225.00000\",\"0.01000000\"],[\"943240.00000\",\"0.00100000\"],[\"943251.00000\",\"0.01000000\"],[\"943253.00000\",\"0.02000000\"],[\"943270.00000\",\"0.01000000\"],[\"943311.00000\",\"0.01680000\"],[\"943312.00000\",\"0.00200000\"],[\"943387.00000\",\"0.00100000\"],[\"943388.00000\",\"0.03869479\"],[\"943400.00000\",\"0.07743077\"],[\"943404.00000\",\"0.01935063\"],[\"943411.00000\",\"0.01740000\"],[\"943425.00000\",\"0.22500000\"],[\"943426.00000\",\"0.02000000\"],[\"943427.00000\",\"4.00000000\"],[\"943437.00000\",\"0.00200000\"],[\"943459.00000\",\"0.02500000\"],[\"943461.00000\",\"0.20000000\"],[\"943489.00000\",\"0.15000000\"],[\"943490.00000\",\"0.00100000\"],[\"943501.00000\",\"0.01000000\"],[\"943509.00000\",\"0.01000000\"],[\"943565.00000\",\"0.05000000\"],[\"943626.00000\",\"0.01000000\"],[\"943636.00000\",\"0.01900000\"],[\"943659.00000\",\"0.08774868\"],[\"943660.00000\",\"0.03999999\"],[\"943708.00000\",\"0.01000000\"]]","event":"updated"}

Sie können sehen, dass der vom Rückruf empfangene Inhalt unverändert ausgegeben wird.

Wenn Sie bei der Protokollausgabe nicht vorsichtig sind, füllt das LiquidTap-Protokoll die Protokolldatei. .. ..

Recommended Posts

Verwenden Sie LiquidTap Python Client ③
Verwenden Sie LiquidTap Python Client ②
Verwenden Sie LiquidTap Python Client ①
Verwenden Sie thingspeak aus Python
Verwenden Sie config.ini mit Python
[Python] Verwenden Sie JSON mit Python
Verwenden Sie fließend Python
Python StatsD-Clientkonfiguration
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Verwenden Sie MySQL aus Python
Verwenden Sie Mecab mit Python 3
Verwenden Sie DynamoDB mit Python
Verwenden Sie Python 3.8 mit Anaconda
Methodische Verwendung im [Python] -Format
Verwenden Sie Python mit Docker
Verwenden Sie MySQL aus Python
Verwenden Sie BigQuery aus Python.
Verwenden Sie den Profiler in Python
Verwenden Sie mecab-ipadic-neologd von Python
Mal sehen, wie def in Python verwendet wird
Lassen Sie uns Python Janome einfach verwenden
Verwenden Sie die Trello-API mit Python
Verwenden Sie matplotlib unter Ubuntu 12 und Python
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
python3: Verwendung der Flasche (2)
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
[Python] Verwenden Sie eine Zeichenfolgenfolge
[Python] Verwendung von Liste 1
Versuchen Sie es mit Kubernetes Client -Python-
Python ist schmerzhaft. Aber benutze
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie TUN / TAP mit Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Wie benutzt man Python Argparse?
Verwenden Sie Random Forest mit Python
Verwenden Sie Spyder von Python IDE
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Verwenden Sie die Unterschall-API mit Python3
Einfacher IRC-Client mit Python
Verwenden Sie Python unter Windows (PyCharm)
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwenden Sie die e-Stat-API von Python
Verwendung von Python-Bytes
Verwenden Sie Pymol als Python-Bibliothek
Python: So verwenden Sie Async mit
Verwenden Sie Stanford Core NLP von Python
Verwenden Sie eine Point Grey-Kamera mit Python (PyCapture2).
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Python
Verwenden Sie Stoff wie in Python (Stoff3)
[Python] Verwendung der Pandas-Serie