simps/mqtt v1.1.1 版本发布,支持 MQTT5 中的大部分 Property
发布于 2024-01-25
955
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
鲁飞
扫码关注公众号
扫码阅读
手机扫码阅读
MQTT 5.0 协议引入了众多新属性,各种报文类型如CONNECT,CONNACK,PUBLISH等均包含不同的属性集,总计27种。CONNECT报文的有效载荷中的Will Properties字段还包括了一组可选属性。
在过去的版本中,尽管支持了一些属性,但代码存在大量if else结构导致冗余。新版本中对此进行了重构,减少了代码量,并支持了除AUTHENTICATION_DATA(0x16)和CORRELATION_DATA(0x09)外的其他25种属性。
针对实际场景中后台需要向客户端发布消息的需求,新版本增加了同步阻塞客户端,允许在fpm中发布消息。以下是示例代码:
use Simps\MQTT\Client;
$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中发布消息的支持,更多属性的支持,添加了ProtocolInterface,以及优化了重复代码。同时修复了SOCKET_ECONNRESET的问题。
simps/mqtt为支持MQTT v5.0协议的PHP库,是首个同时支持MQTT协议3.1、3.1.1和5.0版本的PHP库,同时支持QoS 0、QoS 1、QoS 2。项目的GitHub页面和文档链接提供了更多信息,并附有交流群号码。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
微信扫描带参数的二维码事件推送返回 qrscene_0
在调用微信接口时需要注意数据格式,不要只关注参数
怎么分别给公司和个人项目设置 Git User?
从第一天使用 Git 开始,每个人都逃不过这个配置
你不知道的PHP小技巧之计算文本相似度
有这样一个需求:需要对于用户发布的内容标题进行相似度对比,如果有之前的内容和当前发布的内容标题相似度到达某个阈值时则禁止发布或进行其他的一些操作。
Think-Swoole如何设置Swoole提供的配置项
think-swoole 的文档极少,官方文档中也只是说了如何启动、热更新、连接池等配置
怎么使用默认的 PHP 执行 phar 包?
最近在开发一个安装程序的时候,打包为了 phar 包,遇到了一个问题就是打包后的 phar 包不能省略 php 去运行。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线