Guten Tag. Ich baue eine iOS-Anwendung und wollte MQTT verwenden, um Nachrichten auf einem MQTT-Server zu abonnieren/veröffentlichen. Bei der Untersuchung von MQTT-Bibliotheken, I found this library, die für meine Zwecke angemessen schien. Bitte beachten Sie, dass ich mit CloudMQTT bereits einen MQTT-Server online eingerichtet habe. Nachdem ich herausgefunden hatte, wie CocoaPods funktionieren kann und wie ich Abhängigkeiten von meinem Podfile hinzufügen kann, habe ich es endlich eingerichtet.iOS - MQTT Client Framework verbindet/funktioniert
@interface VBViewController : UIViewController<MQTTSessionDelegate>
und in meiner .m
Datei, in der viewDidLoad
Funktion, ich habe diese:
viewDidLoad
Funktion meiner ersten Blick, ich durch das Hinzufügen dieser Zeile meiner
.h
Datei auf meinem MQTT Server zu verbinden versucht
MQTTCFSocketTransport *transport = [[MQTTCFSocketTransport alloc] init];
transport.host = @"mPortNumber.cloudmqtt.com";
transport.port = portNumber;
session = [[MQTTSession alloc] init];
session.transport = transport;
session.delegate=self;
[session connectAndWaitTimeout:30];
[session subscribeToTopic:@"username/messagesFolder/#" atLevel:2 subscribeHandler:^(NSError *error, NSArray<NSNumber *> *gQoss){
if (error) {
NSLog(@"Subscription failed %@", error.localizedDescription);
} else {
NSLog(@"Subscription sucessfull! Granted Qos: %@", gQoss);
}
}];
Nach dem Ausführen wurde jedoch weder die Abonnement fehlgeschlagen/Erfolg Nachrichten angezeigt. Ich dachte, dass ich die falsche Portnummer verwendet haben könnte, also habe ich alle drei bereitgestellten Ports, den einfachen Port, einen SSL-Port und einen Websocket-Port verwendet. Nachdem nichts davon funktionierte, habe ich versucht, das Ordnerverzeichnis zu wechseln, indem ich mit den Schrägstrichen spielte, aber das hat auch nicht funktioniert.
Ich habe auch versucht, Nachrichten zu senden und zu empfangen, aber das hat auch nicht geklappt.
Ich benutze den Emulator für die mittlere Zeit, da ich meine iOS-Entwicklerlizenz noch nicht erneuert habe. Ich möchte nicht alle meine 10 Einsätze blasen, nur um dieses einfache Ding herauszufinden. Könnte das die Ursache für die fehlende Verbindung zu meinem MQTT Server sein? Ich würde das bezweifeln, weil der Emulator sich mit dem Internet verbinden und mit Safari surfen kann - also ist es ziemlich gut mit dem Internet verbunden.
Fehle ich etwas mit, wie ich die MQTT-Methoden initialisierte/importierte? Jede Hilfe wird sehr geschätzt.