PHP TCP连接时间延迟

时间:2017-07-27 08:46:32

标签: javascript php tcp

我有一个在我的覆盆子pi上运行的TCP服务器,它可以在收到命令“r”时返回一些sensordata。 在telnet中,这看起来像:

  

>> [R

     

123123131321;

我立即通过telnet从服务器获得答案。由于我想查看来自不同设备的数据,我决定构建一个PHP和javascript界面​​。

在我的javascript代码中,我调用PHP methed来读取用于读取TCP服务器的php方法:

<?php
    $str = "oi";
    $fp = fsockopen("localhost", 1234, $errno, $errstr, 30);
    if (!$fp) {
        echo "Fehler!";
    } else {
        fwrite($fp, "r");
        $str = fgets ($fp, 1024);
        fclose($fp);
    }
    echo json_encode($str);
?>

readTCP.php:

{{1}}

我遇到的问题是,使用此脚本读取TCP服务器需要45秒。

我不是PHP的专家,这可能是一个明显的错误,但我无法弄明白。

为什么这么慢?

1 个答案:

答案 0 :(得分:1)

我在树莓派上运行了一个类似的TCP客户端。不同之处在于我使用的是fread($fp, 20);而不是fgets ($fp, 1024);

所以试试这个:

<?php
    $str = "oi";
    $fp = fsockopen("localhost", 1234, $errno, $errstr, 30);
    if (!$fp) {
        echo "Fehler!";
    } else {
        fwrite($fp, "r");
        $str = fread($fp, 20);
        echo json_encode($str);
        fclose($fp);
    }
?>