Тайм-аут потока php fgets - PullRequest
1 голос
/ 09 июля 2011

Я работаю в чате сервера-клиента, используя php. я хотел знать, есть ли какие-нибудь способы обнаружить, не вводил ли клиент что-либо в течение 5 или 10 секунд. использование fgets приостанавливает работу терминала и ожидает каждой записи, что делает чат не в реальном времени xD

Я все еще как бы модифицирую код, который получил отсюда http://codeyoung.blogspot.com/2009/07/simple-php-socket-based-terminal-chat.html

спасибо: D

основано на ответе карьера .. я пытался

while(true) {
 stream_set_timeout($sock,1);
  $reply = fread($sock, 4086);
  if($reply != ""){ echo "[Server] ".$reply; }
 stream_set_timeout($uin,1);
  $resp = fgets($uin);
  if($resp != ""){ fwrite($sock, $resp); }
}

но установленное время ожидания, похоже, не работает?

1 Ответ

0 голосов
/ 31 августа 2011

это невозможно, если PHP не поддерживает многопоточность. Что я сделал, так это использовал два терминала.один для получения сообщений и другой для отправки

...