Che cosa è una quantità sicura di tempo che vedo l'ora prima di rispondere a un browser, senza ottenere un timeout?

StackOverflow https://stackoverflow.com/questions/1338123

  •  20-09-2019
  •  | 
  •  

Domanda

Sto facendo un'applicazione di chat che funziona con a lungo polling per emulare una "spinta" dal server al client.

In sostanza, il browser chiede per gli aggiornamenti, e io rispondo, se c'è qualcosa di nuovo. In caso contrario, io continuo la connessione aperta senza rispondere fino a quando c'è qualcosa da mandare indietro.

Ora, se 30 secondi sono passati e non hanno inviato nulla, poi faccio inviare una risposta, dicendo fondamentalmente "NoNews", e il client esegue il polling di nuovo.

Quello che voglio fare è, ovviamente, a mantenere questa connessione senza rispondere il più a lungo possibile, prima che il browser sarà semplicemente il tempo fuori e rinunciare a me ... Non ho trovato una buona documentazione su ciò che il timeout del client è per ogni browser, e non sembrare che sia lo stesso per tutti loro ...

Ha qualcuno di voi ha fatto un'applicazione a lungo polling?
Tutte le idee che potrebbe essere il più lungo timeout sicuro?

Grazie!

È stato utile?

Soluzione

Il browser dovrebbe rilevare un timeout su un XHR e fare un altro richiesta.

Aggiornamento:

Rilevamento timeout su un XHR in realtà è complicata, poiché non è built-in per qualche motivo. Naturalmente si dovrà anche gestire 502/503 risposte, ecc ..

Altri suggerimenti

Il timeout di lettura varia tra i browser. Ad esempio, questi sono i valori di default per 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

Come si può vedere, si ottiene straordinari più grande.

In polling lungo, timeout è tuo amico. Si dovrebbe approfittare di esso, invece di evitarlo. Timeout significa che si sta facendo PIÙ LUNGO polling possibile con il browser. Timeout è un errore si deve gestire anche senza polling lungo quindi non c'è alcun onere aggiuntivo.

Si potrebbe desiderare di leggere la mia risposta a questa domanda,

polling un server HTTP da J2ME cliente

Anche se si tratta di un client mobile, la maggior parte delle regole si applicano a AJAX polling lungo anche. In particolare, penso che si potranno beneficiare di un sistema di notifica così a lungo polling viene utilizzato solo per la notifica degli eventi e tutti i contenuti sono ancora tirati normalmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top