猿问

从php-mod切换到php-fpm输出缓冲问题

当使用 php-mod 和 fastcgi 时,代码完美地执行,每一秒我都会得到一个输出,但切换到 php-fpm 代码在输出之前滞后几秒钟,具体取决于输出大小


在 php ini ob_implicit_flush ob_start ob_end_flush header Content-Encoding = noneimplicit_flush 1 ob_end_clean 中尝试了以下和设置输出缓冲区 0 的组合


<?php

  header('Content-Type: text/event-stream');

  header('Cache-Control: no-cache');

  while( true ){

    $time = date('r');

    echo "retry:1000\r\n";

    echo "data: ".$time;

    echo "\r\n\r\n";                    

    ob_flush();

    flush();

    sleep(1);

   }

  ?>

这是用于生产服务器,而 php-mod 不是一个选项,我也让它在 Fastcgi 中使用 FcgidOutputBufferSize 0 是否有办法使代码在 php-fpm 上工作,以便像在 php-mod 中一样立即发送输出和fastcgi ?


PS 运行:Ubuntu 18.04、Apache 2.4.29、PHP 7.2


HUWWW
浏览 145回答 1
1回答
随时随地看视频慕课网APP
我要回答