workerman mqtt插件问题

for ($a = 0 ;$a<500;$a++){
echo "a = ".$a."||||";
$mqtt->publish( "/1805705204f0468788/getGeneral",$a,["qos" => 2]);
usleep(500000);
}
只能发送100个到mqtt服务器上,剩余400个虽然循环 还在执行,但是mqtt服务器就收不到了。不知道为什么求大神解答,mqtt服务器问题已经排除
已邀请:

dmjlovehj - 90后IT男

赞同来自:

不要沉贴呀,,性命攸关呀

six

赞同来自:

workerman里不让用sleep吧

six

赞同来自:

sleep会让进程睡眠,感觉会影响mqtt消息的确认吧。
试下这个
function publish($a) {
    $b = $a + 1;
    if ($b >= 500) return;
    $mqtt->publish( "/1805705204f0468788/getGeneral",$a,["qos" => 2], function()use($b){
         Timer::add(0.5, 'publish', [$b], false);
    });
}
publish(0);

要回复问题请先登录注册