Nœud.js avec Socket.module io vs XMPP-avantages et inconvénients

j'ai un Nœud.js avec Socket.application de chat io et un système de chat XMPP Openfire. J'ai hâte de remplacer XMPP par Node.js et Socket.io. Cependant, il y a une discussion, noeud.js avec Socket.io aurait un problème, si le serveur tombe en panne et retourne en ligne il aurait un syndrome de goulot d'étranglement ou peut-être impossible de reconnecter 10.000 de ses utilisateurs en ligne. Est-ce vrai?

une Autre question. Dans quel cas XMPP serait plus approprié que Socket.io et vice versa?

21
demandé sur cnotethegr8 2011-05-05 09:30:44

4 réponses

XMPP est un protocole de communication standard ouvert pour les middlewares orientés message (Wikipedia).

noeud.js est un outil de développement basé sur JavaScript pour créer des services réseau.

ces deux choses ne se comparent pas vraiment. Si vous avez construit une application de chat avec socket.io, il est possible qu'il souffre du syndrome du goulot d'étranglement, mais cela dépend beaucoup de votre code d'application.

en général, si vous voulez aller au-delà simple chat basé sur le navigateur, je considérerais sérieusement XMPP (alias. Jabber), puisqu'il y a des clients XMPP facilement disponibles pour tous les OS'E.

13
répondu mikl 2011-05-05 07:57:42

je pense que les pros de Nœud.js sont que c'est écrit dans un langage généralement compris (Javascript) plutôt que des serveurs XMPP dont les plus communs sont écrits en erlang/Java qui ne sont pas si largement compris.

si vous voulez avoir le contrôle total sur le comportement du serveur et écrire des modules intelligents alors je soupçonne que le noeud sera la meilleure solution pour vous.

la place de ce noeud.js pourrait tomber, c'est que si jamais vous avez besoin à l'échelle au-delà d'un serveur, vous êtes il va falloir l'intégrer à votre application nodale. Je crois que eJabberd et Openfire supportent tous les deux le regroupement hors de la boîte donc tout ce que vous avez à faire est d'amener un autre serveur en ligne, configurer les deux pour parler à l'autre et vous partez.

mon conseil général pour vous serait que si le système XMPP actuel fonctionne bien pour vous, alors je m'y tiendrais.

11
répondu James C 2011-05-05 08:08:55

comme mikl l'a dit, XMPP est un protocole et non un cadre d'application.

vous pouvez construire des applications XMPP sur NodeJS de la même manière que vous pouvez construire des applications SocketIO sur NodeJS. La différence est que OpenFire et ejabberd ont été autour et testé pendant un certain temps par rapport à une solution que vous construiriez sur votre propre. Cela ne signifie pas que vous devriez le faire, mais cela signifie que vous devriez avoir une bonne analyse de rentabilisation pour le faire.

si vous réglez votre l'infrastructure en place correctement, vous pouvez le faire dans pratiquement n'importe quel cadre. Pour atténuer votre latence pendant les pointes, vous devriez équilibrer vos requêtes qui seront probablement nécessaires avec n'importe quel système.

4
répondu Nick Campbell 2011-05-08 16:52:12

vous pouvez également consulter la bibliothèque xmppjs conçue pour fonctionner avec node.js. http://xmppjs.prosody.im/

3
répondu user847585 2011-07-16 07:48:41