Qual é uma quantidade segura de tempo que posso esperar antes de responder a um navegador, sem obter um tempo limite?
-
20-09-2019 - |
Pergunta
Estou fazendo um aplicativo de bate-papo que funcione com a policial longa para emular um "empurrão" do servidor para o cliente.
Basicamente, o navegador pede atualizações e respondo se há algo novo. Caso contrário, mantenho a conexão aberta sem responder até que haja algo para enviar de volta.
Agora, se 30 segundos se passaram e eu não enviei nada, envio uma resposta, dizendo basicamente "nenhumws", e o cliente irá pesquisar novamente.
O que eu quero fazer é obviamente manter essa conexão sem responder pelo maior tempo possível, antes que o navegador simplesmente desista e desista ... não encontrei uma boa documentação sobre qual é o tempo limite do cliente para cada navegador, E não parece que é o mesmo para todos eles ...
Algum de vocês fez um aplicativo de longa duração?
Alguma idéia de qual pode ser o tempo limite mais longo?
Obrigado!
Solução
O navegador deve detectar um tempo limite em um XHR e fazer outra solicitação.
Atualizar:
Detectar tempos limite em um XHR é realmente complicado, pois não está embutido por algum motivo. Claro que você também precisará lidar com respostas 502/503, etc.
Outras dicas
O tempo lim de leitura varia entre os navegadores. Por exemplo, esses são valores padrão para o IE,
Internet Explorer 4.0 and Internet Explorer 4.01 - 5 minutes
Internet Explorer 5.x and Internet Explorer 6.x - 60 minutes
Internet Explorer 7 and Internet Explorer 8 - 60 minutes
Como você pode ver, ele fica maior horas extras.
Em longas pesquisas, o tempo limite é seu amigo. Você deve aproveitar isso, em vez de evitá -lo. Tempo limite significa que você está fazendo pesquisas mais longas possíveis com o navegador. O tempo limite é um erro que você deve lidar, mesmo sem pesquisas longas, para que não haja carga extra.
Você pode querer ler minha resposta a esta pergunta,
Pesquisando um servidor HTTP do J2ME Client
Mesmo que seja para um cliente móvel, a maioria das regras se aplica também a uma pesquisa longa do AJAX. Especificamente, acho que você se beneficiará de um sistema de notificação, por mais que as pesquisas longas sejam usadas apenas para notificação de eventos e todo o conteúdo ainda é puxado normalmente.