PHPMQTT v1.1.4 版本发布,MQTT 协议解析 & 协程客户端

栏目: 软件资讯 · 发布时间: 4年前

内容简介:在 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 的逻辑,增加了一些限制:

  1. 在 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
  1. 同样的,在 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 的首页居然给了推荐,在此表示感谢

PHPMQTT v1.1.4 版本发布,MQTT 协议解析 & 协程客户端

更新日志

增强

  • 优化重连逻辑,增加 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 协议解析 & 协程客户端》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Data Structures and Algorithm Analysis in Java

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》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具