A.P.E (Ajax Push Engine) est un serveur web de type Comet : Il s’agit d’une approche nouvelle du web, qui permet au serveur d’envoyer des informations au navigateur sans que celui-ci ne lui ait demandé quoi que ce soit. L’intérêt est bien entendu de pouvoir échanger des données en temps réel sur un navigateur, sans avoir à recharger la page !
Lire également Ajax Push Engine : Un serveur web open-source solide et novateur pour plus d’informations.
APE est intéressant dans le concept, c’est clairement vers du PULL que les applications web modernes devraient tendre.
Mais faute de vraie implémentation browser qui ouvrirait de manière permanente une communication TCP avec le serveur, le framework JS se contente de lancer une XHR qui reste ouverte 25s si le serveur n’a rien à dire, et qui se ferme dès que des data passent.
Mieux que rien, mais à comparer avec une solution qui utiliserait un proxy flash qui lui ouvrirait une vraie connexion permanente avec le serveur : + de réactivité, moins de bande passante, mais il faut utiliser une techno propriétéaire
Quasiment tous les browser commencent à implémenter les Web-Socket, qui permettent de garder une connexion ouverte en permanence entre le client et le serveur.
Si on mixe ça avec APE, le tour est joué pour avoir du web vraiment temps réel.
Pour avoir tester ces 2 technos, je confirme que sa forme vraiment bien et que les perspectives sont énormes.
@jpvincent tu voulais dire du PUSH je suppose ? 🙂
Effectivement une minorité de navigateurs va utiliser du long polling (le coup des 25sec).
En revanche Firefox supporte le xhrstreaming (pas besoins de déconnexion) et les nouveaux navigateurs arrivent avec les websockets (déjà supportés par Chrome).
Le problème avec un proxy flash c’est que c’est ni supporté par l’iphone ni par les consoles de jeux. C’est clairement pas une bonne solution.
Ps : APE 1.01dev supporte déjà les websockets
@jpvincent :
Je pense que dans ta première phrase, c’est bien « PUSH » que tu voulais dire et non « PULL » 🙂 ?
Tu parles justement d’utiliser du Flash pour faire ce que APE (ou autre serveur COMET) peut faire. C’est effectivement une possibilité, mais c’est une alternative à cette possibilité que APE (et les autres) essayent de donner. Ne pas utiliser de Flash, une technologie propriétaire. C’est une des raisons pour laquelle APE à été développé. De plus, de nouveaux standards commencent à émerger – avec notamment le XHR Streaming et les Web Sockets – qui permettent à APE de tendre vers l’équivalence d’un socket Flash.
Ce que tu oublie également dans l’utilisation d’un proxy flash qui ouvrirait un socket vers le serveur, c’est le fait que APE propose un Framework complet de développement d’applications web en temps réel, et ce notamment avec l’implémentation du JavaScript côté serveur, qui permet de développer plus facilement. Ceci sans compter les nombreuses implémentations du Framework (côté client et serveur) avec la gestion des users, channels, MySQL, HTTP requests… etc
L’implémentation de COMET étant notamment le choix de Facebook, Twitter, Google et autres grands du web, je ne pense pas que cela soit un mauvais choix 🙂
Je t’invite également à tester la réactivité d’une application faite avec APE, pour la comparer à ce que pourrait donner une application similaire avec du Flash 😉
Si tu as des questions, n’hésite pas 🙂
John
merci pour ce tuto.