Home >Backend Development >PHP Tutorial >nginx - LNMPA环境下PHP异步请求的问题

nginx - LNMPA环境下PHP异步请求的问题

WBOY
WBOYOriginal
2016-06-06 20:48:381123browse

使用php的socket实现异步请求。一般的使用以下代码都可以实现

<code>$fp = stream_socket_client($host.':'.$part, $errno, $errstr, 30);
if ($fp) {
    $out = "GET /".$request." HTTP/1.1\r\n";
    $out .= "Host: ".$host."\r\n";;
    $out .= "Connection: Close\r\n\r\n"; 
    fwrite($fp, $out);  
    fclose($fp);
}
</code>

好几台服务器都是相同的环境,但是有台服务器,必须要在fwrite后面加上以下代码,相应的请求才可以执行。

<code>while (!feof($fp)) {
    echo fgets($fp, 1024);
}
</code>

在本地测试(apache)是没有问题的,我也怀疑过nginx的问题,但是有其他服务器使用同样的配置确实没有问题,有没有遇到过这样的问题的同学,求指教!

回复内容:

使用php的socket实现异步请求。一般的使用以下代码都可以实现

<code>$fp = stream_socket_client($host.':'.$part, $errno, $errstr, 30);
if ($fp) {
    $out = "GET /".$request." HTTP/1.1\r\n";
    $out .= "Host: ".$host."\r\n";;
    $out .= "Connection: Close\r\n\r\n"; 
    fwrite($fp, $out);  
    fclose($fp);
}
</code>

好几台服务器都是相同的环境,但是有台服务器,必须要在fwrite后面加上以下代码,相应的请求才可以执行。

<code>while (!feof($fp)) {
    echo fgets($fp, 1024);
}
</code>

在本地测试(apache)是没有问题的,我也怀疑过nginx的问题,但是有其他服务器使用同样的配置确实没有问题,有没有遇到过这样的问题的同学,求指教!

好像是缓冲区的问题, php的output_buffering。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn