Socket Server PHP multicliente y proceso independiente

Necesito realizar un socket server multicliente, hasta ahí todo bien, el problema se presenta en que necesito que el servidor se mantenga leyendo información aunque no haya clientes, es decir, el proceso debe de monitorear un servidor en cuanto espacio en disco, y llevar una bitácora de eventos, en caso que haya clientes conectados, recibirá las peticiones y realizará las tareas según lo ingresado por el cliente, tengo el servidor de socket multicliente trabajando pero lo que no logro hacer es el monitoreo independiente, en este ejemplo, estoy poniendo el código el cual debería de estar repitiendo la hora del lado del servidor, pero al ejecutar el script solo da la hora una vez y se queda en espera de las conexiones sin repetir el ciclo de la hora.

¿

<?php
//Server
set_time_limit(0);
$host='0.0.0.0';
$port=1983;
$socket=socket_create(AF_INET,SOCK_STREAM,0);
socket_bind($socket,$host,$port);
socket_listen($socket);
$client=array($socket);
while (true) {
  echo "La Hora es: " . Date('Y-m-d H:i:s', time()) . "\n\n";
  $read=$client;
  $cliid=0;
  socket_select($read,$write=NULL,$except=NULL,$tv_sec=NULL);
  if(in_array($socket,$read)) {
    for($i=1;$i<5;$i++) {
      if(!isset($client[$i])) {
        $client[$i]['socket']=socket_accept($socket);
        $cliid+=1;
        socket_getpeername($client[$i]['socket'], $ip);
        echo "Client #".$cliid." With IP {$ip} Connected\n";
        $msg="\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'.\n";
        socket_write($client[$i]['socket'],$msg);
      } //inside if
    } //for
    break;
  } //first if
  if(in_array($socket,$client)){
    for($i=1;$i<5;$i++){
      $data=socket_read($client[$i]['socket'],1024);
      if(trim($data)!=''){
        echo 'getting data';
        echo $data;
      }
    }
  }
} //while
socket_close($socket); //for accepting
?>

Añade tu respuesta

Haz clic para o