内容简介:在 v1.1.4 版本中,优化了重连的逻辑,增加了reconnect_delay配置参数,让用户自己设置重连的延时时间。 之前的版本为固定的3s,现在默认值为3s,可以自行设置 use Simps\MQTT\Client; use Swoole\Coroutine; ...
在 v1.1.4 版本中,优化了重连的逻辑,增加了reconnect_delay
配置参数,让用户自己设置重连的延时时间。
之前的版本为固定的3s
,现在默认值为3s
,可以自行设置
use Simps\MQTT\Client;
use Swoole\Coroutine;
Coroutine\run(function () {
$config = [
'host' => '127.0.0.1',
'port' => 1883,
'user_name' => '',
'password' => '',
'client_id' => \Simps\MQTT\Client::genClientID(),
'keep_alive' => 10,
'reconnect_delay' => 5,
];
$swooleConfig = [
'open_mqtt_protocol' => true,
'package_max_length' => 2 * 1024 * 1024,
'connect_timeout' => 1.0,
];
$client = new Client($config, $swooleConfig);
});
优化了 connect 和 publish 的逻辑,增加了一些限制:
- 在 MQTT 的协议中是不支持 QoS 大于 3 的,MQTT5 中会返回相应的错误码
0x9B
表示不支持的 QoS,但是在 MQTT3 中就没有对应响应,通过抓包会发现其实是一直在重连的
include __DIR__ . '/examples/bootstrap.php';
use Simps\MQTT\Client;
use Swoole\Coroutine;
Coroutine\run(function () {
$client = new Client(getTestConnectConfig(false), SWOOLE_MQTT_CONFIG);
$will = [
'topic' => 'simps-mqtt/user001/update',
'qos' => 3,
'message' => 'byebye',
];
$res = $client->connect(false, $will);
var_dump($res);
});
所以直接限制在 MQTT3 设置大于 QoS2 的等级
PHP Fatal error: Uncaught Simps\MQTT\Exception\ProtocolException: QoS 3 not supported
- 同样的,在 MQTT5 中 publish 可以通过
topic_alias
来进行发布,此时的topic
可以为空,但是 MQTT3 中没有topic_alias
的功能,所以就不支持发布topic
为空的消息
include __DIR__ . '/examples/bootstrap.php';
use Simps\MQTT\Client;
use Swoole\Coroutine;
Coroutine\run(function () {
$client = new Client(getTestConnectConfig(false), SWOOLE_MQTT_CONFIG);
$client->connect();
var_dump($client->publish('', 'hello'));
});
PHP Fatal error: Uncaught Simps\MQTT\Exception\ProtocolException: Protocol Error, Topic cannot be empty
感谢
昨天将 PHPMQTT 提交到了 OSCHINA 的软件库(https://www.oschina.net/p/phpmqtt),今天发现 OSCHINA 的首页居然给了推荐,在此表示感谢
更新日志
增强
- 优化重连逻辑,增加 reconnect_delay 参数 (#26)
- 新增 ProtocolException,限制 publish 不能为空 topic (#27)
- 更新 testPublishNonTopic 测试文件 (#28)
- 优化 MQTT3 connect 封包 (e669288)
修复
- 修复传入参数错误导致的未定义索引 (9d908b7)
关于 PHPMQTT
- MQTT 协议解析 & 协程客户端
- 适用于 PHP 的 MQTT 协议解析和协程客户端
- 支持 MQTT 协议 3.1、3.1.1 和 5.0 版本,支持 QoS 0、QoS 1、QoS 2
- 首个支持 MQTT v5.0 协议的 PHP library
文档:https://mqtt.simps.io
GitHub:https://github.com/simps/mqtt
Gitee:https://gitee.com/phpiot/mqtt
支持记得点个 Star~
以上所述就是小编给大家介绍的《PHPMQTT v1.1.4 版本发布,MQTT 协议解析 & 协程客户端》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Netty 源码解析系列-客户端连接接入及读I/O解析
- Netty 源码解析:客户端启动过程
- 客户端负载均衡Ribbon之源码解析
- 支付宝客户端架构解析:iOS 客户端启动性能优化初探
- 中华万年历客户端埋点方案解析
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithm Analysis in Java
Mark A. Weiss / Pearson / 2011-11-18 / GBP 129.99
Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course wa......一起来看看 《Data Structures and Algorithm Analysis in Java》 这本书的介绍吧!