Подтвердить что ты не робот

Длительный опрос с php curl

Я следую этот пример для Spring клиента чата MVC, который использовал длительный опрос HTTP.

Мой веб-сервер находится на порту 7555, и мне нужно сделать запрос HTTP длинного опроса на порт 7555 из порта 80 (браузер), поэтому я создал PHP script, который вызывает мой веб-сервис.

<?php
$index = $_GET["index"];
echo $index;
echo $index2;

$urlVar = "http://localhost:7555/test?" . $index . $index2;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlVar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PORT, 7305);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_exec($ch)
?>

Я вызываю этот PHP файл из своего JavaScript с такими параметрами:

($.ajax({
    url : "http://localhost/myphpscript.php?index=" + i, 
    type : "GET", 
    cache: false,
    success : function(messages) {
       //do stuff
    }
}));

Файл PHP находится в моем локальном хосте. Это, похоже, не работает, потому что JavaScript, кажется, вызывает PHP (который вызывает URL) бесконечно. Правильно ли я делаю длинный опрос с помощью PHP curl? Мне нужно сделать вызов Ajax в JavaScript, поскольку я являюсь вызовом HTTP в curl?

4b9b3361

Ответ 1

С CURLOPT_RETURNTRANSFER вам нужно будет повторить результаты curl_exec($ch)

echo curl_exec($ch);

Ответ 2

Поскольку ему не разрешено отправлять запросы на межсайтовый сайт (это относится и к портам), вам нужно сделать эту ссылку PHP relais.

Тем не менее. Запрос одного и того же запроса снова и снова (опрос) почти прав, но ваш веб-сервис должен поддерживать соединение открытым до тех пор, пока у него не появится какая-либо новая информация или время запроса (длительный опрос).

Что возвращает ваш веб-сервис (Http-Status ok? Любой контент?)