Socket.IO semble être la bibliothèque d'émulation WebSocket la plus populaire et la plus active. Juggernaut l' utilise pour créer un système pub / sous complet.
Faye est également populaire et actif, et possède sa propre bibliothèque javascript, ce qui rend sa fonctionnalité complète comparable à Juggernaut. Juggernaut utilise node pour son serveur, et Faye peut utiliser node ou rack. Juggernaut utilise Redis pour la persistance ( correction: il utilise Redis pour pub / sub), et Faye ne garde l'état qu'en mémoire.
- Tout ce qui précède est-il exact?
- Faye dit qu'il implémente Bayeux - je pense que Juggernaut ne le fait pas - est que parce que Juggernaut est de niveau inférieur (IE, je peux implémenter Bayeux en utilisant Juggernaut)
- Faye pourrait-elle passer à l'utilisation de la bibliothèque javascript du navigateur Socket.IO si elle le voulait? Ou leurs bibliothèques javascript font-elles des choses fondamentalement différentes?
- Existe-t-il d'autres différences architecturales / de conception / de philosophie entre les projets?
websocket
publish-subscribe
juggernaut
bayeux
socket.io
John Bachir
la source
la source
Réponses:
Divulgation: Je suis l'auteur de Faye.
Faye semble probablement beaucoup plus complexe que Juggernaut parce que Juggernaut délègue davantage, par exemple il délègue la négociation de transport à Socket.IO et le routage des messages à Redis. Ce sont deux bonnes décisions, mais ma décision d'utiliser Bayeux signifie que je dois faire plus de travail moi-même.
En ce qui concerne la philosophie de conception, l'objectif primordial de Faye est qu'elle devrait fonctionner partout où le Web est disponible et qu'elle devrait être absolument simple à utiliser. C'est vraiment simple pour commencer, mais son extensibilité signifie qu'il peut être personnalisé de manière assez puissante, par exemple, vous pouvez le transformer en un service push de serveur à client (c'est-à-dire arrêter les clients arbitraires qui y poussent) en ajoutant des extensions d'authentification .
Des travaux sont également en cours pour le rendre plus flexible côté serveur. Je cherche à ajouter la prise en charge du clustering et à rendre le moteur de pub-sub de base enfichable afin que vous puissiez utiliser Faye comme interface Web sans état pour un autre système de pub-sub comme Redis ou AMQP.
J'espère que cela a été utile.
la source
Je serai vraiment intéressé par ce que l'auteur de Faye a à dire. Comme je l'ai dit, je ne l'ai pas utilisé et ce serait formidable de savoir comment il se compare à Juggernaut. C'est probablement le cas d'utiliser le meilleur outil pour le travail. Si c'est un pub dont vous avez besoin, Juggernaut le fait très bien.
la source
Faye pourrait certainement. Un autre exemple de projet similaire au-dessus de Socket.IO:
https://github.com/aaronblohowiak/Push-It
la source