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")


Заранее спасибо!
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
while (true) {}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
22 авг. 2018, в 08:57
113 руб./за 1000 зн.
22 авг. 2018, в 08:50
10000 руб./за проект
22 авг. 2018, в 06:57
150 руб./в час