Дано:
NGINX с модулем nginx-push-stream-module для long-polling
Отправка сообщения (php):
$channel_id = '1';
$msg = array('text' => 'a');
$ch = curl_init('http://127.0.0.1/pub?id='.$channel_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msg));
if (curl_exec($ch))
echo 'sended '.json_encode($msg);
else
echo 'fail';
curl_close($ch);
Прием сообщений:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/sub/' + subID, true);
xhr.send();
xhr.onreadystatechange = xhr.onload = function () {
alert(xhr.readyState);
if (xhr.status === 200) {
if (xhr.readyState === 4) {
console.log(xhr.responseText);
}
}
}
Alert показывает, что при получении сообщений readyState бывает только 2 и 3, но не 4.
Никак не могу понять, в чем дело