【发布时间】:2018-01-02 21:11:28
【问题描述】:
我的树莓派上运行了一个 TCP 服务器,当它接收到命令“r”时,它可以返回一些传感器数据。 在 telnet 中,这看起来像:
>> r
123,123,131,321;
我通过 telnet 立即从服务器获得答案。由于我想查看来自不同设备的数据,我决定构建一个 PHP 和 javascript 接口。
在我的 javascript 代码中,我调用了一个 PHP 方法来读取用于读取 TCP 服务器的 php 方法:
$.ajax('readTCP.php', {
type: 'POST',
cache: false,
async: false,
dataType: 'json',
success: function(data){
drawStatus();
$('.statustext').text('Status: ' + data);
},
error: function() {
console.error("fehler")
}
});
读取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);
?>
我遇到的问题是,使用此脚本读取 TCP 服务器大约需要 45 秒。
我不是 PHP 专家,这可能是一个明显的错误,但我无法弄清楚。
为什么这么慢?
【问题讨论】:
标签: javascript php tcp