我正在尝试文档中的这个示例:Symfony2 中的响应流式传输。
这会将所有内容同时输出。我做错了什么吗?
/**
* @param Request $request
* @return Response $render
* @Route("/streamedResponse", name="streamed_response")
* @Template("AcmeTestBundle::streamedResponse.html.twig")
*/
public function streamedResponseAction(Request $request)
{
$response = new StreamedResponse();
$response->setCallback(function () {
echo 'Hello World';
flush();
sleep(3);
echo 'Hello World';
flush();
});
return $response;
}
这会将所有内容同时输出。我做错了什么吗?
flush()
之前尝试使用ob_flush()
。 - mask8in case
,但是由于没有ob_start()
,所以这并不起作用。同时,使用ob_start
和ob_flush
也无法解决问题。 - Mickob_flush()
确实解决了这个问题。你是怎么测试的?你知道浏览器不会在第一个 Hello World 3 秒后显示第二个吧?你需要通过 telnet 或 netcat 等方式进行测试。 - mask8