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

简介: 在 MQTT 5.0 协议中增加了很多属性。

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

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


6.1.png


6.2.png

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

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

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

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。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
5月前
|
消息中间件 Java Spring
RocketMQ-JAVA客户端不同版本接入方式
RocketMQ4.0 RocketMQ5.0 JAVA接入 spring springboot
RocketMQ-JAVA客户端不同版本接入方式
|
7月前
|
消息中间件 存储 Kubernetes
k8s1.20版本部署RabbitMQ集群(持久化)——2023.05
k8s1.20版本部署RabbitMQ集群(持久化)——2023.05
284 1
|
29天前
|
弹性计算 前端开发 Java
使用阿里云 mqtt serverless 版本超低成本快速实现 webscoket 长链接服务器
使用阿里云 MQTT Serverless 可轻松实现弹性伸缩的 WebSocket 服务,每日成本低至几元。适用于小程序消息推送的 MQTT P2P 模式。前端需注意安全,避免 AK 泄露,采用一机一密方案。后端通过调用 `RegisterDeviceCredential` API 发送消息。示例代码包括 JavaScript 前端连接和 Java 后端发送。
240 0
|
2月前
|
消息中间件 RocketMQ
在RocketMQ 5.1.0版本中,当Broker的`enableControllerMode`配置为true时
在RocketMQ 5.1.0版本中,当Broker的`enableControllerMode`配置为true时
117 1
|
10月前
|
消息中间件 Java RocketMQ
【Java】最新版本SpringCloudStream整合RocketMQ实现单项目中事件的发布与监听
【Java】最新版本SpringCloudStream整合RocketMQ实现单项目中事件的发布与监听
342 0
|
10月前
|
传感器 消息中间件 运维
统信UOS系统开发笔记(八):在统信UOS上编译搭建mqtt基础环境(版本使用QMQTT::Clinet)
统信uos使用到mqtt开发,需要重新编译mqtt,本篇描述统信uos20上的mqtt源码编译和环境搭建。这里mqtt版本是使用QMQTT::CLIENT来操作的,这里笔者已知Qt的版本分为两个:一个是QMQTT::QMQTTCLIENT,一个是QTMQTT:CLIENT,对应不同的类和方式,请根据需求选择)
EMQ
|
消息中间件 云安全 安全
EMQX Cloud BYOC 版本发布:在您的云上体验全托管的 MQTT 消息服务
EMQX Cloud BYOC为更高数据隐私控制和定制化云服务需求的企业提供理想解决方案。在自己的云环境中构建安全、可扩展的MQTT云部署,满足物联网业务需求。
EMQ
120 0
EMQX Cloud BYOC 版本发布:在您的云上体验全托管的 MQTT 消息服务
|
消息中间件 缓存 Java
【RocketMq】RocketMq 高版本JDK编译报错问题处理
简单记录RocketMq的JDK8以上版本的编译问题,在RocketMq的github - issue里面讨论还挺多的。
485 0
|
消息中间件 监控 关系型数据库
RabbitMQ安装说明文档(超详细版本)
RabbitMQ安装说明文档,初次安装请狠狠的跟着
211 0
RabbitMQ安装说明文档(超详细版本)
MQ发布确认springboot版本
MQ发布确认springboot版本
MQ发布确认springboot版本