Socket.IO parece ser a biblioteca de emulação WebSocket mais popular e ativa. Juggernaut o usa para criar um sistema pub / subs completo.
Faye também é popular e ativo e tem sua própria biblioteca javascript, tornando sua funcionalidade completa comparável ao Juggernaut. Juggernaut usa o nó para seu servidor e Faye pode usar o nó ou o rack. Juggernaut usa Redis para persistência ( correção: ele usa Redis para pub / sub), e Faye apenas mantém o estado na memória.
- Tudo acima está correto?
- Faye diz que implementa Bayeux - acho que Juggernaut não faz isso - é porque Juggernaut é de nível inferior (ou seja, posso implementar Bayeux usando Juggernaut)
- Faye poderia passar a usar a biblioteca javascript do navegador Socket.IO, se quisesse? Ou suas bibliotecas javascript fazem coisas fundamentalmente diferentes?
- Existem outras diferenças arquitetônicas / de design / filosofia entre os projetos?
websocket
publish-subscribe
juggernaut
bayeux
socket.io
John Bachir
fonte
fonte
Respostas:
Divulgação: Eu sou o autor de Faye.
Faye provavelmente parece muito mais complexo em comparação com Juggernaut porque Juggernaut delega mais, por exemplo, ele delega negociação de transporte para Socket.IO e roteamento de mensagens para Redis. Ambas as decisões são boas, mas minha decisão de usar Bayeux significa que tenho que trabalhar mais sozinho.
Quanto à filosofia de design, o objetivo primordial de Faye é que funcione em todos os lugares em que a Web estiver disponível e seja absolutamente trivial para começar. É muito simples de começar, mas sua extensibilidade significa que pode ser personalizado de maneiras bastante poderosas, por exemplo, você pode transformá-lo em um serviço push de servidor para cliente (ou seja, interromper o envio de clientes arbitrários para ele) adicionando extensões de autenticação .
Também há um trabalho em andamento para torná-lo mais flexível no lado do servidor. Estou pensando em adicionar suporte a cluster e tornar o mecanismo pub-sub principal plugável para que você possa usar Faye como um front-end da Web sem estado para outro sistema pub-sub, como Redis ou AMQP.
Espero que isso tenha sido útil.
fonte
Estarei realmente interessado no que o autor de Faye tem a dizer. Como já disse, não o usei e seria ótimo saber como ele se compara ao Juggernaut. Provavelmente é o caso de usar a melhor ferramenta para o trabalho. Se é pubsub que você precisa, Juggernaut faz isso muito bem.
fonte
Faye certamente poderia. Outro exemplo de um projeto semelhante em cima do Socket.IO:
https://github.com/aaronblohowiak/Push-It
fonte