Dokumentation MQTT Client Library


Modul import: from mqttclient import *

Klasse MQTTClient
Befehl Aktion
client = MQTTClient(messageReceived = None, username = "", password = "")

erzeugt einen MQTTClient, der Topics publiziert (publish) und/oder abonniert (subscribe). Der Client erstellt noch keine Verbindung zu einem Broker.

messageReceived(topic, message) ist eine Callbackfunktion, die beim Empfang einer Message aufgerufen wird (und die in einem eigenen Thread läuft). Falls None, so werden keine Empfangsnotifikationen getriggert, beispielsweise bei einem Client, der ausschliesslich publiziert. username wird verwendet, um beim Broker einzuloggen (leer, falls der Broker keine Authentifizierung verlangt).password ist das Passwort, um beim Broker einzuloggen (leer, falls der Broker keine Authentiifizierung verlangt).

client.connect(host, port = 1883, keepalive = 60)

startet einen Verbindungsaufbau zum gegebenen Broker auf dem gegebenen IP port (default: 1883). keepalive ist die maximale Periode (in s) zwischen zwei Kommunikationen mit dem Broker (default: 60 s) Falls keine anderen Messages ausgetauscht werden, handelt es sich um das Zeitintervall zwischen bei Ping-Messages. Gibt True zurück, falls die Verbindung zustande gekommen ist; sonst wird False zurück gegeben

client.disconnect() beendet die Verbindung zum Broker
client.publish(topic, payload, qos = 0, retain = False) sendet eine Message mit gegebenen Topic und Payload zum Broker. payload ist ein String (bei einem int oder float, wird dieser zuerst in einen String konvertiert). qos ist die Qualitätsstufe (quality of service level, Zahl 0, 1, 2, default: 0). retain bestimmt, ob die Message als “last known good”/retained message für dieses Topic betrachtet wird (default: False)
client.subscribe(topic, qos = 0) abonniert (subscribes) den Client auf eines oder mehrere Topics. topic ist ein String oder eine Liste mit Tupels im Format (topic, qos). qos ist die Qualitätsstufe (quality of service level, Zahl 0, 1, 2, default: 0); wird nicht verwendet, falls topic eine Liste ist
client.setVerbose(verbose) schaltet das Ausschreiben von Log-Informationen ein/aus

 

Klasse GameClient
client = GameClient(stateChanged, messageReceived, topic = "/ch/aplu/mqtt/gameclient")

erzeugt eine GameClient Instanz zur Rückgabe von Statusinformationen und dem Austausch von Informationen für Zweipersonen-Spiele. stateChanged(state) ist eine Callbackfunktion, da bei der Änderng des Game-Zustands aufgerufen wird. Statuswert: 'CONNECTING' (während des Verbindungsaufbaus zum Broker), 'CONNECTED' (falls im dem Broker verbunden, aber noch auf den Spielpartner wartend), 'READY' (beide Spieler sind spielbereit), 'DISCONNECTED' (der Spielpartner ist nicht mehr verbunden). messageReceived(msg) ist eine Callbackfunktion, die beim Empfang von Informationen aufgerufen wird. topic ist das MQTT Topic, das für den Datenaustausch verwendet wird (default: /ch/aplu/mqtt/gameclient)

client.connect(host, port = 1883)

startet einen Verbindungsaufbau zum MQTT Broker mit gegebenen IP Adresse und IP Port (default: 1883)

client.sendMessage(text) sendet eine Textinformation zum Partner
client.disconnect() beendet die Verbindung zum Broker
client.getState() gibt den aktuellen Zustand zurück (ein Wert aus 'IDLE', 'CONNECTING', 'CONNECTED', 'READY', 'DISCONNECTED')