チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ7

の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。

executionsProcessメソッドはコメントの通りpubnub通信で価格を取得する処理が書かれています。
「基本的に不要」という言葉の真意は今のところわかりません。
コードを読み進めるとわかるのかもしれません。
なお、bitflyerのAPIリファレンスによるとpubnubは「廃止を検討中」とのことなので、現在は利用非推奨です。
https://lightning.bitflyer.com/docs?lang=ja#realtime-api

class BFSubscriberCallback(SubscribeCallback):
   def message(self, pubnub, message):
       execution = message.message
       for i in execution:
           executions.append(i)
config = PNConfiguration()
config.subscribe_key = 'sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f'
config.reconnect_policy = PNReconnectionPolicy.LINEAR
config.ssl = False
config.set_presence_timeout(60)
pubnub = PubNubTornado(config)
listener = BFSubscriberCallback()
pubnub.add_listener(listener)
pubnub.subscribe().channels(channels).execute()
pubnubThread = threading.Thread(target=pubnub.start)
pubnubThread.start()

この辺はpubnubの接続・コールバック処理登録です。
pubnubのドキュメント( https://www.pubnub.com/docs/python/pubnub-python-sdk )にあるように、コールバックを用意しておきconfigを作成しそのconfigを引数にPubNubオブジェクトを作りコールバックを登録して接続します。
↓コールバックを用意しておき

class BFSubscriberCallback(SubscribeCallback):
   def message(self, pubnub, message):
       execution = message.message
       for i in execution:
           executions.append(i)

↓configを作成し

config = PNConfiguration()
config.subscribe_key = 'sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f'
config.reconnect_policy = PNReconnectionPolicy.LINEAR
config.ssl = False
config.set_presence_timeout(60)

↓そのconfigを引数にPubNubオブジェクトを作り

pubnub = PubNubTornado(config)

↓コールバックを登録して

pubnub.add_listener(listener)

↓接続します

pubnub.subscribe().channels(channels).execute()

15分経ったので今日はここまで。

この記事が気に入ったらサポートをしてみませんか?