2016-05-05 7 views
6

私の目標は、ブローカからMQTTメッセージを取得して、Djangoアプリケーションをセットアップすることです。 (例えば、Paho MQTT Clientを使用して)。Djangoチャンネルを使ってリアルタイムでMQTTメッセージを表示できますか?

受信メッセージを非同期にフェッチすると、新しいDjango Channelsに適しているように思えます。これはイベント駆動型セットアップを提供するためです。

私の質問です:本当にジャンゴチャネルはMQTTメッセージをブリッジするツールになりますか?もしそうなら、どうすればこの問題を解決できますか?

答えて

1

私はvery simple interface between MQTT broker and ASGIを実装しました。まだ実験的であり、いくつかの制限がありますが、MQTTブローカーで公開されたメッセージをフェッチするために使用できます(またはコードを例として使用します)。 (消費者を実装

$ asgimqtt my_django_project.asgi:channels_layer 

my_django_project/routing.py

from channels import route 

from my_django_app.consumers import on_mqtt_message 

channels_routing = [ 
    route("mqtt.sub", on_mqtt_message), 
] 

にルートを定義し(daphneと同様)

$ systemctl start mosquitto 

実行MQTT-ASGIインターフェース:

MQTTブローカーを実行MQTTメッセージをデータベースに格納するなど)my_django_app/consumers.py

from .models import MqttMessage 

def on_mqtt_message(message): 
    # do something with the message 
    MqttMessage(topic=message["topic"], 
       payload=message["payload"], 
       qos=message["qos", 
       host=message["host"], 
       port=message["port"]).save() 
関連する問題