$val){ if(is_array($params[array_keys($send_result_param_code)[0]]) ){ foreach($params[$val['result_param_code']] as $k => $v){ // 如果上传了时间,以上传时间为准 $collect_time_arr = []; if(isset($params["FINISH_TIME"]) && !empty($params["FINISH_TIME"][$k])){ $collect_time_arr["collect_time"] = $params["FINISH_TIME"][$k]; } $post_data[] = array_merge([ 'code' => $val['scada_node_code'], "value" =>$v, "parent_device_code"=> $device_code, "device_code"=>$device_code, "batch"=> $batch ],$collect_time_arr); } }else{ // 如果上传了时间,以上传时间为准 $collect_time_arr = []; if(isset($params["FINISH_TIME"]) && !empty($params["FINISH_TIME"])){ $collect_time_arr["collect_time"] = $params["FINISH_TIME"]; } $post_data[] = array_merge([ 'code' => $val['scada_node_code'], "value" => $params[$val['result_param_code']], "parent_device_code"=> $device_code, "device_code"=>$device_code, "batch"=> $batch ],$collect_time_arr); } } $post_action_data = json_encode([ "action"=>"set_node_data", "param"=>[ "working_subclass"=>$workingsubclass, "data"=>$post_data ] ]); $ip = envs("SCADA_IP"); $port = envs("SCADA_PORT"); //发送异步http post 请求 $connection = new AsyncTcpConnection("tcp://{$ip}:{$port}"); $headers = "POST / HTTP/1.1\r\n"; $headers .= "Host: {$ip}\r\n"; $headers .= "Content-Type: application/json\r\n"; $headers .= "Connection: close\r\n"; $headers .= "Content-Length: " . strlen($post_action_data) . "\r\n\r\n"; $connection->send($headers.$post_action_data); $connection -> onMessage = function(AsyncTcpConnection $connection, $task_result){ $connection -> close(); }; // 执行异步连接 $connection->connect(); }catch(Throwable $t){ //捕获Exception和Throwable的异常,防止命令行报错导致接口无任何返回 return $data; } return $data; } }