• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS - MQTT 客户端框架确实连接/工作

[复制链接]
菜鸟教程小白 发表于 2022-12-13 16:26:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在构建一个 iOS 应用程序,我想使用 MQTT 来订阅/发布消息到 MQTT 服务器。在研究 MQTT 库后,I found this library这似乎足以满足我的目的。请注意,我已经使用 CloudMQTT 在线制作了一个 MQTT 服务器。在弄清楚如何使 CocoaPods 工作,以及如何在我的 Podfile 上添加依赖项之后,我终于启动并运行了它。在我的第一个 View 的 viewDidLoad 函数中,我尝试通过将此行添加到我的 .h 文件来连接到我的 MQTT 服务器:

@interface VBViewController : UIViewController<MQTTSessionDelegate>

在我的 .m 文件中,在 viewDidLoad 函数中,我这样做了:

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);
    }
}];

但是,在运行它时,订阅失败/成功消息都没有出现。我认为我可能使用了错误的端口号,所以我使用了提供的所有三个端口,简单端口、SSL 端口和 Websockets 端口。在这些都不起作用之后,我尝试通过使用斜杠来更改文件夹目录,但这也不起作用。

我也尝试发送和接收消息,但也没有成功。

由于我还没有更新我的 iOS 开发者许可证,所以我正在使用模拟器。我不想为了弄清楚这个简单的事情而破坏我所有的 10 个部署。这可能是无法连接到我的 MQTT 服务器的原因吗?我会怀疑,因为模拟器可以连接到互联网并使用 Safari 浏览,所以它几乎可以连接到互联网。

我在初始化/导入 MQTT 方法方面是否遗漏了什么?



Best Answer-推荐答案


使用 connectAndWaitTimeout 时不会收到任何回调。

尝试使用注释中指定的 connectWithConnectHandler(connectHandler: MQTTConnectHandler!),你会得到:

/**
@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
*/

还要确保您不需要加密即可成功连接。

关于iOS - MQTT 客户端框架确实连接/工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37238831/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap