前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >simps/mqtt v1.1.1 版本发布,支持 MQTT5 中的大部分 Property

simps/mqtt v1.1.1 版本发布,支持 MQTT5 中的大部分 Property

作者头像
沈唁
发布2020-12-25 11:22:14
7060
发布2020-12-25 11:22:14
举报
文章被收录于专栏:沈唁志

在 MQTT 5.0 协议中增加了很多属性。不同的报文类型之间,属性也会不同,一共有 27 种属性

CONNECT,CONNACK,PUBLISH,PUBACK,PUBREC,PUBREL,PUBCOMP,SUBSCRIBE,SUBACK,UNSUBSCRIBE,UNSUBACK,DISCONNECT 和 AUTH 数据包的可变报头中的最后一个字段是一组属性。在 CONNECT 数据包中,有效载荷的 Will Properties 字段中还有一组可选的 Properties

上个版本中也支持了几个属性,不过有些缺陷,代码中存在大量的 if else,造成了太多的重复代码

因为具有不同标识符的属性的顺序没有意义,所以此版本进行了重构,除了AUTHENTICATION_DATA(0x16)CORRELATION_DATA(0x09)以外,支持了 25 种属性,也减少了相关代码量

在一些实际的场景中,还需要通过后台来给客户端发布消息,想要直接在 fpm 中给客户端 publish 消息的话,直接使用协程客户端是不可能的,所以在此版本中还增加了同步阻塞的客户端,用于在 fpm 中发布消息

代码语言:javascript
复制
use Simps\MQTT\Client;

/**
 * Support publish in fpm, need to specify clientType as Client::SYNC_CLIENT_TYPE
 */
$client = new Client(getTestConnectConfig(), SWOOLE_MQTT_CONFIG, SWOOLE_SOCK_TCP, Client::SYNC_CLIENT_TYPE);
$client->connect();
$response = $client->publish('simps-mqtt/user001/update', '{"time":' . time() . '}', 1);
var_dump($response);

下面是完整的更新日志

增强功能

  • 支持了在 fpm 中发布消息 (#13)
  • 支持了更多的属性 (#15)
  • 添加了 ProtocolInterface (0e7c353)
  • 优化重复代码 (#12)

修复

  • 修复 SOCKET_ECONNRESET (#6)

关于 simps/mqtt

适用于 PHP 的 MQTT 协议解析和协程客户端,第一个支持 MQTT v5.0 协议的 PHP library。

同时支持 MQTT 协议 3.1、3.1.1 和 5.0 版本,支持 QoS 0、QoS 1、QoS 2。

GitHub:https://github.com/simps/mqtt ? 点 Star 支持我们

文档:https://mqtt.simps.io

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沈唁志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 增强功能
  • 修复
  • 关于 simps/mqtt
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档