开发者社区> 问答> 正文

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

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

$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);
}

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

while (!feof($fp)) {
    echo fgets($fp, 1024);
}

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

展开
收起
落地花开啦 2016-06-15 18:07:04 1939 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

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

    2019-07-17 19:39:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载