Pull to refresh
1
0
Send message
Эх, Михаил почему то так и не дописал в статью.

В данный момент уже можно использовать SSE почти во всех браузерах, за исключением IE.
Метод грязный но рабочий, суть метода проста, мы отсылаем обычный XHR запрос, на сервере отдаём заголовок event-stream и не рвём соединение, вот и всё мы получаем постоянное соединение с сервером.

Ниже код JS+php

//JS side of dirt SSE
//timeout to load indicator skip
setTimeout(function(){
var transport = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
transport.open('GET', 'test.php', true);
transport.onreadystatechange=parse;
transport.send();
},500);

function parse(){
//make element with id = response inside html or use console.log
document.getElementById('response').innerHTML = this.responseText;
}


<?php
//php side of SSE
set_time_limit(0);
header("Content-type: text/event-stream");

while(true){
echo time().'
';

//ob_flush and flush is needed, without it not be output
ob_flush();
flush();
sleep(1);
}
?>

Information

Rating
Does not participate
Registered
Activity