Je travaille sur un site Web où certains événements sont diffusés aux clients à l'aide de SSE (API EventSource). Lors du test de mon site sur la version mobile de Chrome pour Android, j'ai remarqué que la connexion était perdue lorsque la chaîne était inactive pendant environ cinq minutes.Perte de connexion des événements SSE (Server-sent events) sur les téléphones mobiles
J'ai utilisé plusieurs appareils Android, avec différents transporteurs et différents navigateurs et le résultat est le même, peu importe si l'écran est allumé ou éteint. Desktop Chrome semble maintenir la connexion en vie plus longtemps.
Impossible de trouver des informations à ce sujet, et en essayant de déboguer le problème, tout ce que j'ai reçu était un paquet TCP "FIN" reçu de l'adresse IP du téléphone environ 3 minutes et demi après l'envoi du dernier événement.
L'événement onerror
d'EventSource n'est pas déclenché, donc je ne peux pas savoir quand la connexion a été interrompue pour en lancer une nouvelle.
Y at-il un moyen d'éviter ce problème ou dois-je simplement envoyer un faux message toutes les 30 secondes pour empêcher la connexion au ralenti?
Merci à l'avance
Merci pour votre réponse, invité! Malheureusement, envoyer un "réessayer" ne fait aucune différence: c'est comme si le client abandonnait la connexion et ne faisait rien pour l'établir de nouveau. – user683887
Avez-vous essayé d'envoyer des messages en moins de cinq minutes? – guest271314
Oui, si j'envoie des messages, par exemple, toutes les deux minutes, la connexion ne baisse jamais. Donc, je pourrais envoyer des messages "keep-alive" à chaque minute, mais je me demandais s'il y avait une meilleure façon de le faire. – user683887