2017-11-29 19 views
-2

別のPythonモジュールでコールバック関数を定義しました。他のモジュールで定義されているそのコールバックをpaho.mqttクライアントコールバックにどのように添付すればよいですか?ために。私はdatabase.pyにデータベースへの接続やメッセージをデータベースとmqttbroker.pyモジュールに格納するなど、すべてのデータベース操作を行うdatabase.pyを持っています。ここでmqtt.client()インスタンスを作成し、ブローカに接続してトピックに登録しますon_connectやon_disconnectのようなコールバックを定義します。 on_message mqttコールバックのために、私は自分のdatabase.pyモジュールにコールバック関数を作成しました。このコールバックを添付するにはどうすればいいですか?私はdatabase.pyとmqttbroker.pyモジュールをインポートするmain.py(私のクライアント)を持っています。Pythonの異なるクラスモジュールのpaho mqttコールバック

+0

あなたが探していた分離が壊れます。コールバックを 'mqttbroker.py'に移動し、' database.py'を呼び出します。 – hardillb

+0

実際にコードを表示するために質問を編集してください – hardillb

+0

ありがとうございます。以下のコードを見つけてください。それは今働く。 – Mythri

答えて

0

インターフェイスを定義し、そのインターフェイスをクライアントモジュールで呼び出し、データベースモジュールで定義されたコールバックをthisインターフェイスにアタッチします。

#mqttbroker.py 
def onMessage(self, callback): 
     self.client.on_message = callback 
     self.client.loop_forever() 

#database.py 
def on_message(self,client,userdata, msg) 
    #store messsages in db 

#main.py 
import mqqtbroker 
import database 

client = mqqtbroker() 
client.connect(host, port, 60) 
client.onMessage(database.on_message) 
+0

このコードは意味をなさない。 – hardillb

+0

このコードは、データベースブローカー、クライアントブローカー、およびメッセージブローカーのモジュールをどのように分離できるかについて、インフラストラクチャーのテスト目的のプロトタイプを作成するためのものです。 – Mythri

関連する問題