Connexion persistante avec le client

Existe-t-il un moyen général de mettre en œuvre une partie d'une application avec JavaScript et de fournir une connexion persistante à un serveur? J'ai besoin du serveur pour pouvoir envoyer des données au client, quel que soit le client derrière un pare-feu. Merci d'avance

Voir Comet – c'est comme ajax, mais il contient une connexion ouverte pour que le serveur puisse envoyer des informations au client.

Notez que les navigateurs compatibles ne contiennent que 2 connexions (note: la plupart des navigateurs modernes ne sont plus conformes ) à un domaine particulier (par défaut), vous voudrez peut-être diviser vos domaines (par exemple http://www.yourdomain.com et comet.yourdomain.com) Afin que vous ne réduisiez pas considérablement le chargement de vos pages. Ou vous pouvez simplement vous assurer que vous n'ouvrez pas la connexion de la comète jusqu'à ce que tout soit chargé. C'est juste quelque chose à faire attention.

Avec HTTP, la connexion doit démarrer à partir du client. Mais il existe des techniques disponibles pour que le serveur tienne la connexion ouverte et évacue les données au besoin.

Ceux-ci sont généralement considérés comme des architectures Comet ou HTTP Streaming .

Vous pouvez utiliser les techniques de programmation Comet pour cela. Fondamentalement, la page appelle le serveur qui ne retourne pas jusqu'à ce que le serveur ait quelque chose à envoyer (auquel cas le client fait immédiatement le même appel). De cette façon, le serveur peut pousser le contenu vers le client à peu près quand il veut.

Le support varie en fonction de la plate-forme et est plus un problème avec le serveur que le client.

Voici quelques questions dans une veine similaire. Et bien sûr, toutes les questions ont marqué la comète

  • Implémentation d'un objet auto-réinitialisant XMLHttpRequest
  • Rails push-side côté serveur
  • Existe-t-il une alternative d'ajax qui ne nécessite pas d'interrogation sans modification du côté du serveur?
  • Les connexions de longue durée (push serveur asynchrone) avec Apache / PHP / Javascript?