Это нормально, что каждый раз, когда я получаю сообщение от источника события, соединение (пере) открывается?
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
Это предполагаемое поведение?Почему браузер каждый раз устанавливает новое соединение?Разве соединение не должно быть открыто только в первый раз?