iOS - MQTT 客户端框架确实连接/工作
<p><p>我正在构建一个 iOS 应用程序,我想使用 MQTT 来订阅/发布消息到 MQTT 服务器。在研究 MQTT 库后,<a href="https://github.com/ckrey/MQTT-Client-Framework" rel="noreferrer noopener nofollow">I found this library</a>这似乎足以满足我的目的。请注意,我已经使用 CloudMQTT 在线制作了一个 MQTT 服务器。在弄清楚如何使 CocoaPods 工作,以及如何在我的 Podfile 上添加依赖项之后,我终于启动并运行了它。在我的第一个 View 的 <code>viewDidLoad</code> 函数中,我尝试通过将此行添加到我的 <code>.h</code> 文件来连接到我的 MQTT 服务器:</p>
<pre><code>@interface VBViewController : UIViewController<MQTTSessionDelegate>
</code></pre>
<p>在我的 <code>.m</code> 文件中,在 <code>viewDidLoad</code> 函数中,我这样做了:</p>
<pre><code>MQTTCFSocketTransport *transport = [ init];
transport.host = @"mPortNumber.cloudmqtt.com";
transport.port = portNumber;
session = [ init];
session.transport = transport;
session.delegate=self;
;
[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);
}
}];
</code></pre>
<p>但是,在运行它时,订阅失败/成功消息都没有出现。我认为我可能使用了错误的端口号,所以我使用了提供的所有三个端口,简单端口、SSL 端口和 Websockets 端口。在这些都不起作用之后,我尝试通过使用斜杠来更改文件夹目录,但这也不起作用。</p>
<p>我也尝试发送和接收消息,但也没有成功。</p>
<p>由于我还没有更新我的 iOS 开发者许可证,所以我正在使用模拟器。我不想为了弄清楚这个简单的事情而破坏我所有的 10 个部署。这可能是无法连接到我的 MQTT 服务器的原因吗?我会怀疑,因为模拟器可以连接到互联网并使用 Safari 浏览,所以它几乎可以连接到互联网。</p>
<p>我在初始化/导入 MQTT 方法方面是否遗漏了什么?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>使用 <code>connectAndWaitTimeout</code> 时不会收到任何回调。 </p>
<p>尝试使用注释中指定的 <code>connectWithConnectHandler(connectHandler: MQTTConnectHandler!)</code>,你会得到:</p>
<pre><code>/**
@return nothing and returns immediately. To check the connect results, register as an MQTTSessionDelegate and
- watch for events
- watch for connect or connectionRefused messages
- watch for error messages
or use the connectHandler block
*/
</code></pre>
<p>还要确保您不需要加密即可成功连接。</p></p>
<p style="font-size: 20px;">关于iOS - MQTT 客户端框架确实连接/工作,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/37238831/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/37238831/
</a>
</p>
页:
[1]