Поведение событий исходного сервера отправлено: открытие соединения перед каждым новым сообщением - PullRequest
0 голосов
/ 01 декабря 2018

Это нормально, что каждый раз, когда я получаю сообщение от источника события, соединение (пере) открывается?

sse.js:

es = new EventSource('sse.php');

es.addEventListener('open', function(e) {
    console.log('open/Connection open');
}, false);

es.addEventListener('message', function(e) {
    console.log('message/Received: ' + e.data);
}, false);

es.addEventListener('error', function(e) {
    switch(e.readyState) {
        case EventSource.CONNECTING:
            console.log('error/Connecting...');
            break;

        case EventSource.OPEN:
            console.log('error/Connection open');
            break;

        case EventSource.CLOSED:
            console.log('error/Connection closed');
            break;
    }
}, false);

sse.php:

<?php
    header('Content-Type: text/event-stream');
    header('Cache-Control: no-cache');
    $counter = rand(1, 10);
    echo "data: {$counter}\n\n";
    echo "retry: 1000\n\n";
    ob_flush();
    flush();
?>

И это то, что я получаюесли я открою консоль в инструментах разработчика Chrome 70.0.3538.110 x64:

open/Connection open
message/Received: 1
open/Connection open
message/Received: 1
open/Connection open
message/Received: 6
open/Connection open
message/Received: 7
open/Connection open
message/Received: 2

Это предполагаемое поведение?Почему браузер каждый раз устанавливает новое соединение?Разве соединение не должно быть открыто только в первый раз?

...