2016-12-21 9 views
1

私はwebとmqttのプログラミングにnoobを使用しています。mqttを使用するpythonアプリケーション(hivemqまたはrabbitmq broker経由)にも取り組んでいます。クライアント。シングルスレッドのPythonアプリケーションでhttpとmqttを一緒に使用する

私はPythonのボトルフレームワークを使って簡単なhttpサーバを提供するのは簡単ですが、ボトルとmqttの両方ともイベントループを持っていますが、どのようにこれら2つのイベントループを組み合わせるのですか? 。

+0

あなたはおそらくそうではありません。正確に何を達成しようとしているのですか?詳細は – hardillb

+0

が必要です。クライアントはhttp/rest経由でこのサービスに接続しますが、このサービスはmqtt経由でバックエンドの他の多くのサービスとやりとりします。このサービスはmqttループ(paho pythonクライアントを使用)を実行し、http要求を提供するためにボトルを使用するため、ボトルの実行ループを実行する必要があります。これは2つの異なるスレッドで行うことができます、私の質問は、1つのスレッドでこれらを組み合わせる方法はありますか? 2つのスレッドを使うほうが良い/唯一の方法だとお考えですか? – user424060

+0

私はMQTTの相互作用が何であるかということを意味しました。要求/応答ですか? – hardillb

答えて

1

私はボトルに精通していませんが、run()機能以外でイベントループを開始する方法は他にありません。

Pahoは、loop_start()を提供しています。このバックグラウンドスレッドは、MQTTネットワークイベントループを実行する独自のバックグラウンドスレッドを開始します。

手動ボトルのループを実行する方法はないように見えますが考える私はrun()loop_start()を呼び出し、それらを結合する方法がないとして2つの別々のスレッド上のアプリの実行をさせることをお勧めし、あなたはおそらく、とにかくしたいとは思わないでしょう。

MQTTサブスクリプションが、RESTサービスが送信しているデータを更新しても、問題となる可能性の高い大量のデータをストリーミングしていない限り、注意が必要です。

関連する問題