Как сделать постоянное соединение с веб-URL в php?

Я пытаюсь установить постоянное соединение с weburl и читаю ответ от URL каждый раз (Соединение не будет отключено).

Ищете что-то вроде этого.

connection = connect("http://www.ibm.com?id=test"); while(connection has response){ //do something with the response until the connection in forcefully closed }

Я заглянул в библиотеку pecl_http. Но это не будет служить цели. Можем ли мы использовать curl для постоянного подключения к веб-URL?

Или это что-то, что не поддерживается в php?

2 ответа

Посмотрите, как работает протокол http. Невозможно иметь постоянное соединение и получать событие при изменении содержимого. Вы можете использовать веб-сокеты или длинный опрос. Проверьте эту библиотеку, найденную на github https://github.com/panique/php-long-polling

Используйте сокет API.

$sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_connect($sock,"www.ibm.com",80);
$data=implode("\r\n",array(
'GET /?id=test HTTP/1.0',
'Host: www.ibm.com',
'User-Agent: PHP/'.PHP_VERSION,
'Accept: */*'
))."\r\n\r\n";
socket_write($sock,$data);
while(false!==($read_last=socket_read($sock,1))){
   // do whatever
    echo $read_last;
}
var_dump("socket_read returned false, probably means the connection was closed.",
"socket_last_error: ",
socket_last_error($sock),
"socket_strerror: ",
socket_strerror(socket_last_error($sock))
);
socket_close($sock);
Другие вопросы по тегам