【问题标题】:PHP do something after 3 post requests was sentPHP 在发送 3 个 post 请求后执行某些操作
【发布时间】:2017-05-01 11:00:11
【问题描述】:

我正在制作一个数据采集项目,其中 3 台设备将同步以同时向网络服务器发送发布请求。由于来自这些设备的数据应该彼此具有相同的时间,我想等待 3 个发布请求(来自 3 个设备)并创建一个包含来自这 3 个不同设备的数据的 JSON 对象。

对我将如何做到这一点有任何想法吗?感谢您的帮助!


用于创建随机数据的 JavaScript

当我按下按钮时,这部分代码将被执行

$.post('plot.php', {micro: "YUN3",acc: data_string3, gyro: gyro1, mag: mag1}, function(data){

    //console.log("posted data: " + data_string3 + "/" + gyro1 + "/" + mag);
    x3=[];
    y3=[];
    z3=[];
    console.log(data);
});

$.post('plot.php', {micro: "YUN1",acc: data_string1, gyro: gyro2, mag: mag2}, function(data){

    //console.log("posted data: " + data_string1 + "/" + gyro2 + "/" + mag);
    x1=[];
    y1=[];
    z1=[];
    console.log(data);
});

$.post('plot.php', {micro: "YUN2",acc: data_string2, gyro: gyro3, mag: mag3}, function(data){

    //console.log("posted data: " + data_string2 + "/" + gyro3 + "/" + mag);
    x2=[];
    y2=[];
    z2=[];
    console.log(data);
});

plot.php

<?php

$data = array();

if(isset($_POST["acc"], $_POST["gyro"], $_POST["mag"], $_POST["micro"]) === true) {
    $acc = $_POST["acc"];
    $gyro = $_POST["gyro"];
    $mag = $_POST["mag"];
    $gyro_array = explode(',',$gyro);
    $acc_array = explode(',',$acc);

    for($i=0; $i < sizeof($acc_array); $i++) {
        if($i < 49) {
            $data[] = array('acc_x' => $acc_array[$i], 'acc_y' => $acc_array[$i+50], 'acc_z' => $acc_array[$i+100],
                            'gyro_x' => null, 'gyro_y' => null, 'gyro_z' => null, 'mag' => null);
        } elseif ($i == 49) {
            $data[] = array('acc_x' => $acc_array[$i], 'acc_y' => $acc_array[$i+50], 'acc_z' => $acc_array[$i+100],
                            'gyro_x' => $gyro_array[0], 'gyro_y' => $gyro_array[1], 'gyro_z' => $gyro_array[2], 'mag' => $mag);
        }

    }


    //print_r($acc_array);
    echo json_encode($data);
}

?>

micro 键是我用来命名数据的来源,我想看看 YUN1, YUN2, YUN3 是否已经发布,然后我将从这 3 个不同的发布请求生成一个 JSON 对象。

【问题讨论】:

  • 向我们展示您的尝试
  • 创建 3 个不同的标志,每次存储从每个源接收到的数据的状态。在您的接收方检查您是否收到所有三个请求或不使用这些 fag 变量之后。您是否执行业务逻辑部分并重置标志变量( Storage )并再次监视标志变量。还有第二种方法,您可以将您的发布请求存储在接收方的某个临时位置并对其进行监控。在获得所有三个之后,您可以重置该帖子请求的临时存储并执行业务逻辑。

标签: php json post


【解决方案1】:

制作一个带有列的小型数据库, 命名为“完成”。

每次有设备连接,更新这个,(加1)

在您开始您的流程之前,请检查此“完成”是否==3(表示 3 次尝试)

当 "done" ==3 时,你可以做任何你想做的事,并确保在完成后将其重置为零,这样你就可以开始下一轮,或者你可以用 'done 创建一个新行'=0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2011-10-29
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多