Pregunta

Digamos que tengo un programa de chat que cada vez que alguien envía un mensaje, una globalfile está bloqueado y escribir en él. El cliente receptor tiene una solicitud pendiente xmlhttp que está esperando para volver con el archivo recién actualizado utilizando este constructo:

while (!hasNewdata())
{    sleep 3;    }
print "$thenewdata";
sub hasNewData()
{
     # determine if global file has been appended to.
}

¿Podría enviar el tamaño del archivo para el cliente y luego de vuelta al servidor en la próxima solicitud de sondeo de ser un buen método para hacer esto, ya que ahora podemos comprobar si el tamaño del archivo es diferente a lo que ya ha sido enviado de nuevo a la cliente para asegurarse de que hay nuevos datos. O le envía el desplazamiento de ida y vuelta archivo ser un mejor enfoque para que sepa en qué parte del archivo para comprobar si hay nuevos datos? O un método completamente diferente, algo que no sea mediante un archivo mundial 'chat'?

¿Cuáles son los métodos generales de determinación 'nuevos datos disponibles'

¿Fue útil?

Solución

Se puede utilizar la fecha de modificación.

$last_modified = filemtime("thisfile.php");

Otros consejos

El tamaño del archivo no es una mala manera.

Navegadores bien podrían estar ya etiquetando "si-modified-since" cabeceras a las solicitudes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top