Utiliser le client LiquidTap Python ③

table des matières

introduction

Frappons l'API de "Liquid by Quoine" -Partie 3-

Consultez le journal de "Liquid by Quoine"

Quand j'ai essayé de vider le journal price.py créé dans Using LiquidTap Python Client ① dans un fichier, il m'est arrivé de trouver la bibliothèque LiquidTap dans le journal. Puisque le journal a été craché, jetons un coup d'œil au contenu de sortie. (2020.03.04)

Avant de consulter le journal Liquid Tap.

Il s'agit du code et du fichier de configuration préparés pour vérifier le journal.

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: #boucle infinie
    time.sleep(1)

Il s'agit d'un fichier de paramètres de journal. (J'essayais de le vérifier sur la console et le fichier journal, donc ... il est également craché sur la console.)

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]
#Spécifiez le format(https://docs.python.jp/3/library/logging.html#logrecord-attributes)
format=%(asctime)s %(levelname)-8s [%(module)s#%(funcName)s %(lineno)d] %(message)s

Afficher le journal de sortie Liquid Tap

Connexion (de websocket)

Dans les environs

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"}

Cela semble être un mécanisme (?) Pour se connecter avec _on_open et recevoir un message avec _on_message. Vous pouvez lire l'ID de socket et le délai d'expiration.

Envoyez abonnez-vous et recevez les résultats

Dans les environs

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 est conçu pour être déconnecté s'il n'y a pas de communication (valeur activity_timeout?). Par conséquent, nous envoyons régulièrement des PING et recevons des 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

J'envoie et je reçois vraiment du PING / PONG. .. ..

PRIX réception

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"}

Vous pouvez voir que le contenu reçu par le rappel est sorti tel quel.

Si vous ne faites pas attention à la sortie du journal, le journal LiquidTap remplira le fichier journal. .. ..

Recommended Posts

Utiliser le client LiquidTap Python ③
Utiliser le client LiquidTap Python ②
Utiliser le client LiquidTap Python ①
Utilisez Thingsspeak de Python
Utilisez config.ini avec Python
[Python] Utiliser JSON avec Python
Utiliser fluentd de python
Configuration du client Python StatsD
Utiliser des dates en Python
Utiliser Valgrind avec Python
Utilisez MySQL depuis Python
Utiliser mecab avec Python 3
Utiliser DynamoDB avec Python
Utilisez Python 3.8 avec Anaconda
Utilisation méthodique du format [Python]
Utiliser python avec docker
Utiliser MySQL depuis Python
Utilisez BigQuery depuis Python.
Utiliser le profileur en Python
Utilisez mecab-ipadic-neologd de Python
Voyons comment utiliser def en python
Utilisons Python Janome facilement
Utiliser l'API Trello avec python
Utilisez matplotlib sur Ubuntu 12 et Python
Utiliser l'expression let en Python
Utiliser le protocole de mesure avec Python
python3: Comment utiliser la bouteille (2)
Utiliser la fonction de rappel en Python
Utiliser le magasin de paramètres en Python
[Python] Utiliser une séquence de chaînes
[Python] Comment utiliser la liste 1
Essayez d'utiliser Kubernetes Client -Python-
Python est douloureux. Mais utilisez
Utiliser le cache HTTP en Python
Utiliser TUN / TAP avec Python
Utilisez l'ODM de MongoDB avec Python
Utiliser un dict clé de liste en Python
Comment utiliser Python Argparse
Utiliser Random Forest avec Python
Utilisez Spyder de Python IDE
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Utiliser l'API subsonique avec python3
Client IRC simple avec python
Utiliser Python sur Windows (PyCharm)
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Utilisez l'API e-Stat de Python
Comment utiliser les octets Python
Utilisez pymol comme bibliothèque python
Python: comment utiliser async avec
Utiliser la PNL Stanford Core à partir de Python
Utiliser la caméra Point Grey avec Python (PyCapture2)
Utilisez vl53l0x avec RaspberryPi (python)
Python
Utilisez le tissu tel quel en python (fabric3)
[Python] Comment utiliser la série Pandas