simps/mqtt v1.1.1 版本发布,支持 MQTT5 中的大部分 Property
发布于 2024-01-25
1164
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
鲁飞
扫码关注公众号
扫码阅读
手机扫码阅读
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页面和文档链接提供了更多信息,并附有交流群号码。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
JavaScript 如何实现在搜索中忽略变音符号
变音符号是指添加在字母上面的符号,以更改字母的发音或者以区分拼写相似词语。
给你的项目增加 Git WebHooks
让你的项目支持 WebHooks,并且可以自定义 WebHooks 的规则。
怎么使用默认的 PHP 执行 phar 包?
最近在开发一个安装程序的时候,打包为了 phar 包,遇到了一个问题就是打包后的 phar 包不能省略 php 去运行。
怎么复用 GitHub Actions 的 Workflows
使工作流程可重复使用,而不是从一个工作流程复制并粘贴到另一个工作流程。 自己和有权访问可重用工作流程的任何人都可以从另一个工作流程调用可重用工作流程。
Nginx目录浏览并进行美化
Nginx 作为一个高性能的 HTTP 和反向代理 web 服务器,默认不允许列出站点的整个目录,如果需要开启,可以通过配置打开此功能。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线