おはよう。私はiOSアプリケーションを構築しており、MQTTを使用してメッセージをMQTTサーバーにサブスクライブ/パブリッシュできるようにしたかったのです。 MQTTライブラリを調べると、私の目的にふさわしいと思われたI found this library CloudMQTTを使用してすでにMQTTサーバーをオンラインにしています。 CocoaPodを動作させる方法と、Podfileに依存関係を追加する方法を理解した後、ついにそれを起動して実行しました。私の最初のビューのviewDidLoad
機能では、私は私の.h
ファイルに次の行を追加することで、私のMQTTサーバーに接続しようとしました:iOS - MQTTクライアント・フレームワークは接続/作業します
viewDidLoad
機能では、
@interface VBViewController : UIViewController<MQTTSessionDelegate>
と私の.m
ファイルで、私はこれをしませんでした
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);
}
}];
ただし、実行時にサブスクリプションの失敗/成功のメッセージが表示されませんでした。間違ったポート番号を使用した可能性があるので、提供された3つのポート、単純なポート、SSLポート、およびWebSocketsポートを使用しました。作業していない人の後に、スラッシュで再生することによってフォルダディレクトリを変更しようとしましたが、それもうまくいかなかったのです。
私はまた、メッセージの送受信を試みましたが、それもうまくいきませんでした。
まだiOSデベロッパーライセンスを更新していないため、エミュレータを使用しています。私はこの単純なことを理解するために10の展開をすべて吹き飛ばしたくはありません。それが私のMQTTサーバーへの接続失敗の原因になるでしょうか?私は、エミュレータがインターネットに接続してSafariを使って閲覧することができるので、それは疑いの余地があります。
私はMQTTメソッドの初期化/インポート方法について何か不足していますか?どんな助力も非常に感謝しています。