[PYTHON] Erstellen Sie eine MQTT Publisher Box Teil 2

Einführung

TLS MQTT Publisher Box

Erstellen Sie ein Feld "TLS MQTT Pub", indem Sie das vorherige Feld kopieren.

Elemente einstellen

Geben Sie unter Zertifikat den Dateinamen des Zertifikats an. Wenn Sie test.mosquitto.org verwenden möchten, laden Sie es von hier herunter.

2015032901.png

Platzieren Sie das zu verwendende Zertifikat an der folgenden Stelle.

2015032902.png

Python-Code

Der Code sieht so aus. Es ist fast das gleiche wie beim letzten Mal. Ich bekomme nur die crt_file und mache tls_set ().

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)

    def onLoad(self):
        self.framemanager = ALProxy("ALFrameManager")
        self.folderName = None

    def onUnload(self):
        import sys

        if self.folderName and self.folderName in sys.path:
            sys.path.remove(self.folderName)
        self.folderName = None

    def onInput_onStart(self, payload):
        import sys, os

        self.folderName = os.path.join(
            self.framemanager.getBehaviorPath(self.behaviorId), "../lib")
        if self.folderName not in sys.path:
            sys.path.append(self.folderName)

        import paho.mqtt.client as paho

        host       = self.getParameter("Broker Host")
        port       = self.getParameter("Broker Port")
        crt_file   = self.getParameter("Certificate")
        keep_alive = self.getParameter("KeepAlive")
        topic      = self.getParameter("Topic")
        qos        = self.getParameter("Qos")
        retain     = self.getParameter("Retain")

        mqttc = paho.Client()
        mqttc.tls_set(self.folderName + "/crts/" + crt_file)
        mqttc.connect(host, port, keep_alive)
        mqttc.publish(topic, payload, qos, retain)

    def onInput_onStop(self):
        self.onUnload()
        self.onStopped()

Verbinde dich mit Choregraphe

Dies ist fast das gleiche wie beim letzten Mal.

2015032903.png

Abonnentenseite

Abonnent ist fast der gleiche.

tls_sub.py


import paho.mqtt.client as paho

def on_message(mqttc, obj, msg):
    print("topic: " + msg.topic + ", payload: " + str(msg.payload) + ", qos: " + str(msg.qos) + ", retain: " + s\
tr(msg.retain))

if __name__ == '__main__':
    mqttc = paho.Client()

    mqttc.on_message = on_message
    mqttc.tls_set("mosquitto.org.crt")
    mqttc.connect("test.mosquitto.org", 8883, 60)
    mqttc.subscribe("my/topic/tls/pepper", 0)

    mqttc.loop_forever()

Funktionsprüfung

Abonnenten ausführen

Führen Sie es auf Ihrem PC aus und warten Sie, bis Sie eine Nachricht zum Thema erhalten.

$ python tls_sub.py

Führen Sie Publisher aus

Führen Sie das Programm in Choregraphe aus und senden Sie eine Nachricht.

Ergebnisanzeige

Die Nachricht Publisher-> Broker-> Subscriber wurde übertragen und auf der Subscriber-Seite angezeigt.

$ python tls_sub.py
topic: my/topic/tls/pepper, payload: TLS Hello World from Pepper, qos: 0, retain: 0

Bestätigung des Kommunikationsinhalts

Versuchen Sie vorerst, das Paket zu erfassen, um festzustellen, ob es sich um SSL / TLS handelt. Ich habe mir die Details des Inhalts nicht angesehen, aber ich kann sehen, dass sie anscheinend mit SSL / TLSv1 kommunizieren.

2015032904.png

Impressionen

Recommended Posts

Erstellen Sie eine MQTT Publisher Box Teil 2
Erstellen Sie eine MQTT Publisher-Box
Erstellen Sie eine MQTT-Abonnentenbox
Erstellen Sie ein Blueqat-Backend ~ Teil 1
Erstellen Sie ein Blueqat-Backend ~ Teil 2
Erstellen einer HTTP-Get-Box
Erstellen Sie einen Effektor für Videokonferenzen mit Spout + OpenCV + dlib (Teil 1).
Machen wir ein IoT-Shirt mit Lambda, Kinesis, Raspberry Pi [Teil 1]