Задать вопрос
JackShcherbakov
@JackShcherbakov

Как не отправлять ответ на запрос при определенных условиях?

Здарвствуйте! Уже несколько часов мучаюсь с вот этим мини кодом:
<?php

$date = new DateTime();
$minutes = $date->format("i");
if($minutes%2 == 0){
	print "Сервер отправил запрос";
}
?>

Суть в том, что JS код отправляет ему длинный запрос и ждет ответа. То есть соединение должно быть открытым пока сервер не ответит на запрос. Но проблема в том, что как только JS посылает запрос серверу (код выше этот запрос обрабатывает), то запрос сразу же отсылает ответ на запрос, соответственно открывается еще одно соединение... В итоге несколько десятоков ответов в секунду присылаются клинету. То есть моя задача заключается в том, что сервер не должен отвечать на запрос до тех пор, пока не появятся новые данные (в моем случае эти данные - четное кол-во минут).

Как скрипт узнает о том, что данные пришли?
Что можно почитать что бы разобраться с этим мракобесьем?
Можно ли такое вообще реализовать на php?

Все должно работать по такой схеме - https://learn.javascript.ru/article/xhr-longpoll/l...

Вот js код:
function subscribe(url) {
  var xhr = new XMLHttpRequest();

  xhr.onreadystatechange = function() {
    if (this.readyState != 4) return;

    if (this.status == 200) {
      console.log(this.responseText);
    } else {
       console.log(this);
    }

    subscribe(url);
  }
  xhr.open("GET", url, true);
  xhr.send();
}
subscribe("http://comet/php.php")


Заранее спасибо!
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы