Сервер Laravel отправил событие - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь использовать отправленное сервером событие с laravel, но у меня проблема с выводом.

Мой контроллер:

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header("Connection: keep-alive");
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
ob_end_flush();
sleep(5);
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
ob_end_flush();

И мой js:

var source = new EventSource('edit/steps');
source.addEventListener('message', function (e) { ... }, false);

Проблема в том, что данные выводятся только в конце.У меня нет первого выхода, то через 5 секунд, секунд.Только два после 5 секунд.

Я попробовал «ob_flush» вместо «ob_end_flush», но он не работает.

Кто-то видит, в чем проблема?

Спасибоза вашу помощь.

Редактировать:

Этот код работает:

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header("Connection: keep-alive");
ob_implicit_flush(1);

for($i=0; $i<10; $i++){
    echo $i;
    //this is for the buffer achieve the minimum size in order to flush data
    echo str_repeat(' ',1024*64);
    sleep(1);
}

Но я видел только $ i.Как только я изменяю или добавляю что-то в $ i, он перестает работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...