More tests on http chuncked transfer
[ampy.git] / html / currentjson_chunked.php
index a860df51b596268dc1bb6083d1189a5c94c6c837..41bfb1e1f9286d3c8dece39f9fe05ac4c2d3f1d0 100644 (file)
@@ -3,10 +3,15 @@
  * Experimental version that return chunked http response.
  *
  * Pulling the values is no longer needed as the one request will output
- * the updates every 10 seconds.
+ * the updates every second.
  */
 require_once('config.php');
 
+$speed=@(int)$_GET['speed'];
+if ($speed <= 0)
+       $speed=1;  // seconds
+
+
 header("Content-Type: text/json");
 header("Transfer-Encoding: chunked");
 flush();
@@ -23,6 +28,8 @@ function send_chunk($chunk)
 }
 
 while (True) {
+       exec("/usr/bin/rrdtool flushcached --daemon ".RRDSOCK." ".RRDFILE);
+
        $info=rrd_lastupdate(RRDFILE);
        if ($info === FALSE)
                $result=[
@@ -33,9 +40,9 @@ while (True) {
        else
                $result=[
                        'last_update' => $info['last_update'],
-                       'watts' => $info['data'][0]
+                       'watts' => (float)$info['data'][0],
                ];
        send_chunk(json_encode($result));
-       sleep(10);
+       sleep($speed);
 }
 ?>