long polling - o que são métodos para determinar quando você tem novos dados?
-
11-09-2019 - |
Pergunta
Vamos dizer que eu tenho um programa de bate-papo que cada vez que alguém envia uma mensagem, uma globalfile está bloqueado e gravados. O cliente receptor tem um pedido pendente xmlhttp que está esperando para voltar com o arquivo recém-atualizado utilizando esta construção:
while (!hasNewdata())
{ sleep 3; }
print "$thenewdata";
sub hasNewData()
{
# determine if global file has been appended to.
}
Será que enviar o tamanho do arquivo para o cliente e, em seguida, de volta para o servidor na próxima solicitação de poll ser um bom método de fazer isso, como agora podemos verificar se o tamanho do arquivo é diferente do que já foi enviado de volta para o cliente para que sabemos que há novos dados. Ou enviar o arquivo deslocamento para trás e ser uma abordagem melhor que ele saiba onde no arquivo para verificar se há novos dados? Ou um método completamente diferente, algo diferente do que usando um arquivo global 'bate-papo'?
O que são métodos gerais de determinação 'novos dados disponíveis'
Solução
Você pode usar a data de modificação.
$last_modified = filemtime("thisfile.php");
Outras dicas
O tamanho do arquivo não é uma maneira ruim.
Navegadores poderia muito bem já estar marcação "If-Modified-Since" cabeçalhos para os pedidos.