v1.1.4版本优化重连逻辑,增加reconnect_delay配置参数,允许用户自行设置重连延迟时间。之前版本固定3s,现在默认3s,可以自己设置useSimps\MQTT\Client;useSwoole\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=newClient($config,$swooleConfig);});优化connect和publish的逻辑,增加一些限制:在MQTT协议中,不支持大于3的QoS,在MQTT5中会返回相应的错误码0x9B表示不支持QoS,但在MQTT3中没有相应的响应.通过抓包,你会发现其实是在重连include__DIR__。'/examples/bootstrap.php';使用Simps\MQTT\Client;使用Swoole\Coroutine;Coroutine\run(function(){$client=newClient(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的级别PHPFatalerror:UncaughtSimps\MQTT\Exception\ProtocolException:QoS3notsupported同样,publish可以通过MQTT5中的topic_alias进行发布,此时topic可以为空,但是MQTT3中没有topic_alias函数,因此不支持发布包含空主题include__DIR__的消息。'/examples/bootstrap.php';使用Simps\MQTT\Client;使用Swoole\Coroutine;Coroutine\run(function(){$client=newClient(getTestConnectConfig(false),SWOOLE_MQTT_CONFIG);$client->connect();var_dump($client->publish('','hello'));});PHPFatalerror:UncaughtSimps\MQTT\Exception\ProtocolException:ProtocolError,Topiccannotbeempty感谢提交PHPMQTT到OSCHINA软件库(https://www.oschina.net/p/phpmqtt)前天,今天发现OSCHINA的主页居然是推荐,感谢更新日志加强优化重连逻辑,增加reconnect_delay参数(#26),添加ProtocolException,限制发布到空主题(#27),更新testPublishNonTopic测试测试文件(#28)优化MQTT3连接包(e669288)修复参数输入错误导致的未定义索引(9d908b7)关于PHPMQTTMQTT协议解析&协程客户端适用于PHP的MQTT协议解析,协程客户端支持MQTT协议版本3.1、3.1.1和5.0,支持QoS0、QoS1、QoS2第一个支持MQTTv5.0协议的PHP库文档:https://mqtt.simps.ioGitHub:https://github.com/simps/mqttGitee:https://gitee.com/phpiot/mqtt支持记得点个Star~
