Est-ce que quelqu'un qui a utilisé les deux pourrait partager son expérience? Quelles sont les principales différences et laquelle préférez-vous? Merci.
Réponses
Trop de publicités?Différence entre socket.io et APE :
- socket.io est codé en javascript (node.js) tandis que APE est codé en C. Je crois que c'est une grande différence lorsque vous voulez contribuer. Peut-être parce que vous aimez le projet ou peut-être parce que vous voulez plus de fonctionnalités. Je pense qu'il sera plus facile de contribuer à Socket.io car vous programmez en Javascript, ce qui est plus facile à appréhender selon beaucoup de gens (je suis d'accord, bien que le langage C soit également très cool).
- Je crois que socket.io supporte bien plus de navigateurs/protocoles par rapport à APE, mais je ne suis pas sûr. Informations sur Socket.io vs informations de la page APE :
Le serveur APE est un serveur Comet implémentant les méthodes POST et GET du protocole HTTP. Il ne remplace pas un serveur Web classique (comme Apache, Lighttpd ou Nginx), cependant, le serveur APE est uniquement utilisé pour les Push AJAX.
Je suppose donc que APE supporte moins de protocoles que socket.io.
Comme Raynos l'a dit, il est difficile de comparer ces deux produits et je crois que vous devriez jouer avec les deux avant de décider lequel vous préférez.
Mêmes caractéristiques de Socket.io/APE :
- Vous pouvez coder en Javascript pour communiquer avec le serveur. Je pense que vous aurez plus de liberté en utilisant socket.io car tout est exposé via Javascript.
Expérience :
Je n'ai d'expérience qu'avec socket.io et je l'apprécie beaucoup.
Ayant passé un certain temps à développer avec Node.js, je ne peux pas dire que APE semble être meilleur que node. Basé sur sa popularité, il semble que Node.js soit probablement le choix du développeur - et node.js semble également être plus polyvalent.
Node est essentiellement vous permettant de faire un serveur HTTP ou TCP/IP complet. Ainsi, la gestion des types MIME, la mise en mémoire tampon des données, les en-têtes de réponse et le routage côté serveur sont des choses que vous devrez faire avec votre code. Node gère également le streaming. Je ne suis pas sûr que cela soit considéré comme moins problématique que le long polling ajax classique à ce stade.
Après avoir fait quelques recherches sur Google, j'ai découvert que les gens considèrent APE comme un simple serveur de push, dans lequel la fonctionnalité comet est déjà prête à être consommée, plutôt que Node, pour lequel vous devriez écrire votre propre fonctionnalité. Ne craignez pas la perspective d'écrire des choses avec node cependant, ils ont une documentation très complète, et leurs méthodes sont très faciles à apprendre. J'avais une fonctionnalité sérieuse écrite en quelques minutes.
Jetez également un coup d'œil ici: http://groups.google.com/group/nodejs/browse_thread/thread/9d9b301479851b1f?pli=1
J'ai joué un peu avec node.js, essayé socket.io - mais à la fin j'ai réalisé un grand projet avec APE.
Je pense, comme toujours, qu'il y a la question de ce que vous voulez réaliser. En ne comparant que les parties serveur : Avec node.js, vous obtenez une machine qui ne fera rien par elle-même, vous devez l'écrire vous-même (ou utiliser des bibliothèques) Avec APE, la gestion des canaux et des connexions est déjà intégrée (compilée en C). Vous devez toujours construire des parties de votre propre logique avec JS - ou utiliser les exemples.
Côté client, socket.io fournit un framework client avec trois commandes - et APE a son APE_JSF qui gère les connexions (apportant plus de fonctionnalités que socket.io concernant les canaux)
Personnellement, je préfère APE, même s'il y a un manque de documentation pour les débutants. Cependant, gardez à l'esprit qu'APE ne livrera pas de fichiers/images, ce n'est pas un serveur Web complet mais optimisé pour la diffusion en temps réel où il peut gérer ~10K utilisateurs concurrents