Socket.IO parece ser la biblioteca de emulación de WebSocket más popular y activa. Juggernaut lo usa para crear un pub / sub sistema completo.
Faye también es popular y activa, y tiene su propia biblioteca de JavaScript, lo que hace que su funcionalidad completa sea comparable a Juggernaut. Juggernaut usa un nodo para su servidor, y Faye puede usar un nodo o un rack. Juggernaut usa Redis para la persistencia ( corrección: usa Redis para pub / sub), y Faye solo mantiene el estado en la memoria.
- ¿Todo lo anterior es correcto?
- Faye dice que implementa Bayeux , creo que Juggernaut no hace esto, es porque Juggernaut es de nivel inferior (es decir, puedo implementar Bayeux usando Juggernaut)
- ¿Podría Faye cambiar al uso de la biblioteca javascript del navegador Socket.IO si quisiera? ¿O sus bibliotecas de JavaScript hacen cosas fundamentalmente diferentes?
- ¿Existen otras diferencias arquitectónicas / de diseño / filosóficas entre los proyectos?
websocket
publish-subscribe
juggernaut
bayeux
socket.io
John Bachir
fuente
fuente
Respuestas:
Divulgación: soy el autor de Faye.
Faye probablemente parece mucho más complejo en comparación con Juggernaut porque Juggernaut delega más, por ejemplo, delega la negociación de transporte a Socket.IO y el enrutamiento de mensajes a Redis. Ambas son buenas decisiones, pero mi decisión de utilizar Bayeux significa que tengo que trabajar más yo mismo.
En cuanto a la filosofía de diseño, el objetivo primordial de Faye es que debería funcionar en todos los lugares en los que la Web esté disponible y debería ser absolutamente trivial para empezar. Es realmente sencillo comenzar, pero su extensibilidad significa que se puede personalizar de maneras bastante poderosas, por ejemplo, puede convertirlo en un servicio de inserción de servidor a cliente (es decir, evitar que los clientes arbitrarios lo presionen) agregando extensiones de autenticación .
También se está trabajando para que sea más flexible en el lado del servidor. Estoy pensando en agregar soporte de agrupación en clústeres y hacer que el motor principal pub-sub sea enchufable para que pueda usar Faye como una interfaz web sin estado para otro sistema pub-sub como Redis o AMQP.
Espero que esto te haya sido de ayuda.
fuente
Me interesará mucho lo que tenga que decir el autor de Faye. Como digo, no lo he usado y sería genial saber cómo se compara con Juggernaut. Probablemente sea el caso de usar la mejor herramienta para el trabajo. Si lo que necesita es pubsub, Juggernaut lo hace muy bien.
fuente
Faye ciertamente podría. Otro ejemplo de un proyecto similar sobre Socket.IO:
https://github.com/aaronblohowiak/Push-It
fuente