CocoaMQTT v2.0:首个支持 MQTT 5.0 的 iOS 客户端

EMQ团队发布了CocoaMQTT全新版本v2.0,支持MQTT5.0,兼容3.1.1,适用于iOS、tvOS与OSX。MQTT5.0提供了更详细错误报告、会话延迟、用户属性等增强功能。CocoaMQTT使用Swift语言开发,利用其类型安全和并发模型的优势。文章介绍了如何使用CocoaMQTT连接MQTT服务器,订阅和发布消息,以及配置自动重连和SSL连接等。

2017 年 8 月,OASIS MQTT Technical Committee 正式发布了用于 Public Review 的 MQTT 5.0 的草案。2018 年,MQTT 5.0 正式发布,然而直到目前苹果生态里仍没有完整支持 MQTT 5.0 的客户端 SDK 。

CocoaMQTT 是 EMQ 团队为 iOS 开发者提供的 MQTT 客户端 SDK,目前在 iOS 开发者中有着较为广泛的使用。

为弥补苹果生态中对 MQTT 5.0 支持方面的空白,EMQ 团队于近日正式发布了 CocoaMQTT 全新版本 v2.0。CocoaMQTT v2.0 支持 MQTT 5.0,同时兼容 3.1.1 版本,支持 iOS、tvOS 与 OSX 操作系统。用户现已可通过 CocoaMQTT 实现 iOS 系统设备连接 MQTT 5.0 云服务,享受 MQTT 5.0 带来的强大功能加成。

CocoaMQTT 使用 Swift 语言开发,而非 Objective-C。这是因为 Swift 是一门类型安全的语言,对协议的支持更加丰富,配合扩展(extension)、泛型、关联类型等可以实现面向协议编程,从而大大提高代码的灵活性。

此外,在 WWDC 2021 大会上,苹果宣布了 Swift 语言中并发模型的重大更新:通过编译器实现的 Actor 并发模型,新增 Actor 引用类型帮助开发者避免数据竞争问题。

因此,我们相信在 MQTT 相关的 I/O 密集型并发应用中,相较于 Objective-C,Swift 的表现将更值得期待。

MQTT 5.0 vs MQTT 3.1.1

MQTT 3.1.1 仍然有很多不完善的地方,例如连接异常断开时无法通知原因到对端。MQTT 5.0 在 MQTT 3.1.1 的基础上做了很多改变,但并不是向下兼容的。

MQTT 协议 5.0 版本新增了会话/消息延时功能、原因码、主题别名、in-flight 流控、用户属性、共享订阅等功能,以及用于增强认证安全的 AUTH 报文。其中,原因码和用户属性 Property 字段使得 MQTT 5.0 能够携带更多上下文信息,从而解决在 3.1.1 版本因协议不完整而较难处理的问题。

MQTT 5.0 的主要功能优势有:

  • 进一步支持更大规模的可扩展系统
  • 更加详细的错误报告和处理机制
  • 容量探索和请求响应等通用模式的规范化操作
  • 可扩展的用户属性 (User Property)
  • 改进性能并支持小型客户端
  • 会话保持和消息超时设置
  • 新增支持 Req/Rsp 消息模式

CocoaMQTT 客户端的使用

本文将使用 EMQ 提供的 免费公共 MQTT 服务器 进行 CocoaMQTT 功能使用介绍,该服务基于 MQTT 云服务 EMQ X Cloud 创建。

服务器接入信息如下:

  • Broker: broker-cn.emqx.io
  • TCP Port: 1883
  • Websocket Port:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值