物聯(lián)網(wǎng)循環(huán)發(fā)送命令,因為下位機是單項通道,所以要一項一項命令發(fā)送,長時間開啟服務(wù)的話,比如第二天,他就只會返回數(shù)組第一個命令的操作,別的命令都沒有收到或者沒有返回,你們有這種情況嗎?求解,是我寫的有問題嗎?
現(xiàn)在的情況是:一個進程鏈接多個設(shè)備(幾十個),循環(huán)發(fā)送命令查詢數(shù)據(jù)。
public static function onConnect($client_id)
{
var_dump("Link id:".$client_id.",Time:".date("Y-m-d H:i:s",time()));
global $redis;
$redis->set("id".$client_id,0);
$hexbin1 = array(
"010310060004A0C8",
"01031214000dC173",
"0103130A0006E14E",
"020310060004A0FB",
"02031214000dC140",
"0203130A0006E17D"
);
$client_id = Timer::add(2, function()use($client_id,$hexbin1,$redis){
if(Gateway::getUidByClientId($client_id)){
Gateway::sendToClient($client_id, hex2bin($hexbin1[$redis->get("id".$client_id)]));
if($redis->get("id".$client_id)==5){
$redis->set("id".$client_id,0);
}else{
$redis->set("id".$client_id,(int)$redis->get("id".$client_id)+1);
}
}
});
}
這是前一天我重啟服務(wù)后的截圖(重啟后數(shù)據(jù)就會恢復(fù)正常)
這是第二天早晨的數(shù)據(jù)
windows系統(tǒng)(客戶是win我也不好搞,我明白linux適合做生產(chǎn)環(huán)境)