Socket.IO scheint die beliebteste und aktivste WebSocket-Emulationsbibliothek zu sein. Juggernaut verwendet es, um ein komplettes Pub / Sub-System zu erstellen.
Faye ist auch beliebt und aktiv und verfügt über eine eigene Javascript-Bibliothek, wodurch die gesamte Funktionalität mit der von Juggernaut vergleichbar ist. Juggernaut verwendet Node für seinen Server, und Faye kann entweder Node oder Rack verwenden. Juggernaut verwendet Redis für die Persistenz ( Korrektur: Redis für Pub / Sub), und Faye behält nur den Status im Speicher.
- Ist alles oben korrekt?
- Faye sagt, dass es Bayeux implementiert - ich denke, Juggernaut tut dies nicht -, weil Juggernaut auf einer niedrigeren Ebene ist (IE, ich kann Bayeux mit Juggernaut implementieren).
- Könnte Faye zur Verwendung der Javascript-Bibliothek des Socket.IO-Browsers wechseln, wenn dies gewünscht wird? Oder machen ihre Javascript-Bibliotheken grundlegend andere Dinge?
- Gibt es andere architektonische / gestalterische / philosophische Unterschiede zwischen den Projekten?
websocket
publish-subscribe
juggernaut
bayeux
socket.io
John Bachir
quelle
quelle
Antworten:
Offenlegung: Ich bin der Autor von Faye.
Faye sieht im Vergleich zu Juggernaut wahrscheinlich viel komplexer aus, da Juggernaut mehr delegiert, z. B. Transportverhandlungen an Socket.IO und Nachrichtenrouting an Redis. Beides sind gute Entscheidungen, aber meine Entscheidung, Bayeux zu verwenden, bedeutet, dass ich selbst mehr arbeiten muss.
Was die Designphilosophie betrifft, ist Fayes übergeordnetes Ziel, dass sie überall dort funktioniert, wo das Web verfügbar ist, und dass sie absolut trivial sein sollte. Der Einstieg ist sehr einfach, aber aufgrund seiner Erweiterbarkeit kann er auf sehr leistungsstarke Weise angepasst werden. Sie können ihn beispielsweise durch Hinzufügen von Authentifizierungserweiterungen in einen Server-zu-Client-Push-Dienst verwandeln (dh verhindern, dass beliebige Clients darauf pushen) .
Es wird auch daran gearbeitet, es auf der Serverseite flexibler zu gestalten. Ich möchte Clustering-Unterstützung hinzufügen und die Kern-Pub-Sub-Engine steckbar machen, damit Sie Faye als zustandsloses Web-Frontend für ein anderes Pub-Sub-System wie Redis oder AMQP verwenden können.
Ich hoffe das war hilfreich.
quelle
Ich werde wirklich interessiert sein, was Fayes Autor zu sagen hat. Wie gesagt, ich habe es nicht benutzt und es wäre toll zu wissen, wie es mit Juggernaut verglichen wird. Es ist wahrscheinlich der Fall, das beste Werkzeug für den Job zu verwenden. Wenn es Pubsub ist, den Sie brauchen, macht Juggernaut das sehr gut.
quelle
Faye konnte es auf jeden Fall. Ein weiteres Beispiel für ein ähnliches Projekt auf Socket.IO:
https://github.com/aaronblohowiak/Push-It
quelle