Açıklama: Faye'in yazarıyım.
- Faye ile ilgili olarak, söylediğin her şey doğru.
- Faye, Bayeux'un çoğunu uyguluyor, şu anda eksik olan tek şey hizmet kanalları ve bunların kullanışlılığına henüz ikna olmadım. Özellikle Faye, aşağıdakiler üzerinde büyük etkisi olan Bayeux'un CometD referans uygulamasıyla uyumlu olacak şekilde tasarlanmıştır.
- Kavramsal olarak evet: Faye yapabilirdi Socket.IO kullanın. Pratikte bunun önünde bazı engeller vardır:
- Socket.IO'nun ne tür bir sunucu tarafı desteği gerektirdiği konusunda hiçbir fikrim yok ve Faye istemcisinin (Node ve Ruby'de sunucu tarafı istemciler var, unutmayın) herhangi bir Bayeux sunucusuyla (ve Faye herhangi bir Bayeux istemcisine sunucu) anlaşma bozucu olabilir.
- Bayeux, sunucuların ve istemcilerin belirli taşıma türlerini desteklemesine yönelik özel gereksinimlere sahiptir ve hangisinin kullanılacağı konusunda nasıl pazarlık yapılacağını söyler. Ayrıca nasıl kullanıldıklarını, örneğin bir XHR isteğinin İçerik Türünün içeriğinin nasıl yorumlandığını nasıl etkilediğini de belirtir.
- Bazı hata işleme türleri için aktarıma doğrudan erişime ihtiyacım var, örneğin bir Node WebSocket öldükten sonra bir istemci yeniden bağlandığında mesajları yeniden göndermek .
- Bunlardan herhangi birini yanlış anlarsam lütfen düzeltin - bu, Socket.IO belgelerinin üstünkörü taramasına dayanmaktadır.
- Faye sadece pub / sub, sadece biraz daha karmaşık bir protokole dayanıyor ve birçok özelliği var:
- Sunucu ve istemci tarafı uzantıları
- Kanal rotalarında joker karakter kalıbı eşleşmesi
- Otomatik yeniden bağlanma, örneğin WebSockets öldüğünde veya sunucu çevrimdışı olduğunda
- İstemci tüm tarayıcılarda, telefonlarda ve Node ve Ruby'de sunucu tarafında çalışır
Faye muhtemelen Juggernaut ile karşılaştırıldığında çok daha karmaşık görünüyor çünkü Juggernaut daha fazla yetkilendiriyor, örneğin ulaşım görüşmelerini Socket.IO'ya ve mesaj yönlendirmeyi Redis'e devrediyor. Bunların ikisi de güzel kararlar, ancak benim Bayeux'u kullanma kararım, kendim daha fazla iş yapmam gerektiği anlamına geliyor.
Tasarım felsefesine gelince, Faye'in öncelikli hedefi, Web'in mevcut olduğu her yerde çalışması ve devam etmenin kesinlikle önemsiz olması gerektiğidir. Başlamak gerçekten çok basit, ancak genişletilebilirliği, oldukça güçlü şekillerde özelleştirilebileceği anlamına geliyor, örneğin, kimlik doğrulama uzantıları ekleyerek onu bir sunucudan istemciye itme hizmetine dönüştürebilirsiniz (yani keyfi istemcilerin ona zorlamasını durdurabilirsiniz) .
Sunucu tarafında daha esnek hale getirilmesi için çalışmalar da devam ediyor. Kümeleme desteği eklemeyi ve çekirdek pub-sub motorunu takılabilir hale getirmeyi düşünüyorum, böylece Faye'yi Redis veya AMQP gibi başka bir pub-sub sistemi için durumsuz bir web ön ucu olarak kullanabilirsiniz.
Umarım bu yardımcı olmuştur.