2.3.2. Swift MQTT Subscriber
Eine beispielhafte Implementierung des “Subscriber”-Prinzips durch die Programmiersprache Swift und das UIKit-Framework ist eine interaktive App, die dem Benutzer hilft, die erforderlichen Informationen vom Broker in Echtzeit zu erhalten.
Bei diesem Schema wird die anfängliche Verbindung zum Broker unter Verwendung einer IP-Adresse und eines Ports implementiert, und danach wird eine Verbindung zu einer bestimmten Topic zum Abrufen von Informationen erstellt.
MQTTNIO ist eine Bibliothek zum Erstellen von MQTT-Clients und -Brokern in der Programmiersprache Swift. Sie baut auf dem NIO-Framework (Network I/O) auf, einer ereignisgesteuerten Netzwerkbibliothek zum Erstellen leistungsstarker, skalierbarer Netzwerkanwendungen. MQTTNIO bietet eine praktische, typsichere API für die Arbeit mit MQTT, die es Entwicklern ermöglicht, sich einfach mit MQTT-Brokern zu verbinden, Themen zu veröffentlichen und zu abonnieren sowie Verbindungen und Sitzungen zu verwalten. Sie unterstützt auch TLS-Verschlüsselung und Authentifizierung für eine sichere Kommunikation. Insgesamt ist MQTTNIO ein leistungsstarkes und flexibles Tool zum Erstellen von MQTT-basierten Anwendungen in Swift.
Die App “SwiftMQTT” ist in der Xcode-IDE der Apple Corporation implementiert und getestet. Die Implementierung des grafischen Teils der App “SwiftMQTT” basiert auf dem UIKit-Framework, das von Apple entwickelt und gepflegt wird. Der UIKit-App-Zyklus bezieht sich auf die Abfolge von Ereignissen, die auftreten, wenn eine UIKit-basierte iOS-App gestartet und anschließend ausgeführt wird.
Hier ist eine allgemeine Übersicht über die wichtigsten Schritte:
Starten: Wenn der Benutzer auf das App-Symbol tippt, startet das Betriebssystem die App und bereitet sie für die Ausführung vor.
Initialisierung: Die Hauptfunktion der App wird aufgerufen, und die App richtet ihren Anfangszustand ein, z. B. durch das Erstellen des Fensters und des Root-View-Controllers.
App-Delegatmethoden: Die App-Delegatmethoden werden aufgerufen, wodurch die App auf Systemereignisse reagieren kann, z. B. wenn die App aktiv wird oder in den Hintergrund geht.
Ansichtslebenszyklus: Der Ansichtslebenszyklus beginnt mit der Erstellung der Ansichtshierarchie, gefolgt von Layout und Rendering.
Benutzerinteraktion: Der Benutzer interagiert mit der App, indem er auf verschiedene Elemente tippt, die Ereignisse und Aktionen aufrufen.
Unter Verwendung der MQTTNIO-Bibliothek stellt die Anwendung über die bereitgestellte (und manuell konfigurierte) IP-Adresse, den Port und den Informationskanal eine Verbindung zum Broker her. Die Bibliothek arbeitet nach einem ereignisgesteuerten Prinzip, das es ermöglicht, Anwendungsvariablen jedes Mal zu aktualisieren, wenn neue Informationen empfangen werden. Das Aktualisieren einer Variablen beinhaltet das Ändern der Anzeige eines grafischen Elements, das für eine bestimmte Anzeige verantwortlich ist, beispielsweise einen Temperatursensor.