Socket.IO wydaje się być najpopularniejszą i najbardziej aktywną biblioteką emulacji WebSocket. Juggernaut używa go do stworzenia kompletnego systemu pub / sub.
Faye jest również popularna i aktywna i ma własną bibliotekę javascript, dzięki czemu jej pełna funkcjonalność jest porównywalna z Juggernaut. Juggernaut używa węzła jako swojego serwera, a Faye może używać węzła lub szafy. Juggernaut używa Redis do trwałości ( poprawka: używa Redis dla pub / sub), a Faye przechowuje tylko stan w pamięci.
- Czy wszystko powyżej jest dokładne?
- Faye mówi, że implementuje Bayeux - myślę, że Juggernaut tego nie robi - to dlatego, że Juggernaut jest niższy poziom (IE, mogę zaimplementować Bayeux za pomocą Juggernaut)
- Czy Faye mogłaby przełączyć się na korzystanie z biblioteki javascript przeglądarki Socket.IO, gdyby chciała? A może ich biblioteki javascript robią zasadniczo różne rzeczy?
- Czy są jakieś inne różnice architektoniczne / projektowe / filozoficzne między projektami?
websocket
publish-subscribe
juggernaut
bayeux
socket.io
John Bachir
źródło
źródło
Odpowiedzi:
Ujawnienie: jestem autorem Faye.
Faye prawdopodobnie wygląda na dużo bardziej złożoną w porównaniu do Juggernaut, ponieważ Juggernaut deleguje więcej, np. Deleguje negocjacje transportu do Socket.IO i routing wiadomości do Redis. Obie są dobre, ale moja decyzja o użyciu Bayeux oznacza, że muszę sam wykonać więcej pracy.
Jeśli chodzi o filozofię projektowania, nadrzędnym celem Faye jest to, że powinno działać wszędzie tam, gdzie jest dostępna sieć, i powinno być absolutnie trywialne. Nie jest naprawdę łatwy do rozpoczęcia, ale jego rozszerzalność oznacza, że można go dostosować na dość potężne sposoby, na przykład można przekształcić go w usługę wypychania serwera do klienta (tj. Zatrzymać wysyłanie do niego dowolnych klientów), dodając rozszerzenia uwierzytelniania .
Trwają również prace nad uczynieniem go bardziej elastycznym po stronie serwera. Chcę dodać obsługę klastrowania i umożliwić podłączenie podstawowego silnika pub-sub, abyś mógł używać Faye jako bezstanowej nakładki internetowej dla innego systemu pub-sub, takiego jak Redis lub AMQP.
Mam nadzieję, że to było pomocne.
źródło
Bardzo mnie zainteresuje, co ma do powiedzenia autorka Faye. Jak mówię, nie korzystałem z niego i byłoby wspaniale wiedzieć, jak wypada na tle Juggernauta. Prawdopodobnie jest to przypadek użycia najlepszego narzędzia do pracy. Jeśli potrzebujesz pubu, Juggernaut robi to bardzo dobrze.
źródło
Faye z pewnością mogła. Kolejny przykład podobnego projektu na Socket.IO:
https://github.com/aaronblohowiak/Push-It
źródło