Diffuser une réponse dans Symfony2
Je suis en train d'essayer cet exemple de la doc: La diffusion d'une Réponse dans 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;
}
Ce sorties tout au même moment. Ai-je fait quelque chose de mal?
source d'informationauteur Mick
Vous devez vous connecter pour publier un commentaire.
J'ai essayé d'ajouter ob_flush() et ça semble fonctionner. Voici mon code:
Cela renvoie encodage de transfert en bloc d'en-tête avec des fragments de données. Ici, elle est sortie des résultats:
Si vous voyez cette réponse dans le navigateur, il va afficher "HelloWorldHelloWorld" au bout d'environ 3 secondes de chargement du navigateur va attendre jusqu'à ce que tous les fragments de données est reçu en tant que Content-Type text/*, mais quand vous voyez les flux réseau, il est en train de faire du streaming en envoyant des fragments de données.