物联网循环发送命令,因为下位机是单项通道,所以要一项一项命令发送,长时间开启服务的话,比如第二天,他就只会返回数组第一个命令的操作,别的命令都没有收到或者没有返回,你们有这种情况吗?求解,是我写的有问题吗?
现在的情况是:一个进程链接多个设备(几十个),循环发送命令查询数据。
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);
}
}
});
}
这是前一天我重启服务后的截图(重启后数据就会恢复正常)
这是第二天早晨的数据
windows系统(客户是win我也不好搞,我明白linux适合做生产环境)