SORU
30 NİSAN 2012, PAZARTESİ


Neden WebSockets olduğunda AJAX kullanmak?

Şimdi bir süre için WebSockets kullanıyorum, Üniversite Düğüm sunucu ve WebSockets kullanarak son sınıf projem için Çevik proje yönetimi aracı oluşturmak için seçtim. WebSockets kullanarak benim uygulama süreci olabilir saniyedeki istek sayısı 624'lik bir artış sağlanan buldum.

Ancak proje başladığından beri güvenlik boşlukları okudum ve bazı tarayıcılar varsayılan olarak WebSockets devre dışı bırakmak için seçimi..

Bu soruya götürüyor:

Neden WebSockets gecikme ve kaynak yükünü azaltmanın böyle büyük bir iş yapmak gibi görünüyor, AJAX WebSockets daha iyi yaptığı bir şey olduğunda AJAX kullanmak?

CEVAP
30 NİSAN 2012, PAZARTESİ


WebSockets AJAX değiştirmek için uygun değildir ve kesinlikle hatta Kuyruklu yıldız/yerine uzun bir anket, bu mantıklı geliyor birçok durumlar vardır rağmen) değildir.

WebSockets amacı, bir tarayıcı ve sunucu arasında düşük gecikmeli, çift yönlü, tam çift yönlü ve çalışır uzun bir bağlantı sağlamaktır. WebSockets gerçekten mümkün HTTP ve AJAX kullanımı (interaktif oyunlar, dinamik ortam akışları, mevcut ağ protokolleri için köprü, vb) tarayıcı uygulamaları için yeni uygulama alanları açıyor.

Ancak, kesinlikle WebSockets ve AJAX/Comet arasında amaç bir örtüşme var. Tarayıcı sunucu olayları (yani bas) bildirilmesini istiyor örneğin, Comet teknikleri ve WebSockets kesinlikle hem uygun seçenekler var. Eğer uygulama düşük gecikmeli itme olayları ihtiyacı varsa o zaman bu WebSockets lehine bir faktör olacaktır. Diğer taraftan, gerekirse birlikte mevcut çerçeveleri ve teknolojilerinden (OAuth, Dinlendirici API, Proxy sunucuları, yük dengeleyici) o zaman bu faktörü lehine Comet tekniği (şimdilik).

Eğer ihtiyacın yok belirli bir fayda sağlar WebSockets, o zaman muhtemelen daha iyi bir fikir sopa ile varolan teknikleri gibi AJAX ve Comet çünkü bu sağlar size yeniden kullanım ve entegre bir büyük mevcut ekosistemin araçları, teknolojileri, güvenlik mekanizması, bilgi tabanı (yani çok daha fazla insan üzerinde stackoverflow biliyor HTTP/Ajax/Comet daha WebSockets), vb.

Eğer sadece iyi gecikme ve Bağlantı kısıtlamaları HTTP/Ajax/Comet içinde çalışmayan yeni bir uygulama oluşturuyorsanız, diğer yandan, daha sonra WebSockets kullanarak düşünün.

Ayrıca, bazı cevaplar WebSockets bu olumsuzlukları bir karma sunucu ve tarayıcı desteği/sınırlı olduğunu gösteriyor. Bana biraz sadece dağınık izin ver. İOS (iPhone, iPad hala eski protokolü (Hixie) destek verirken en WebSockets sunucuları Hixie ve/IETF 6455 HyBi sürümü de destek vermektedir. En diğer platformlar zaten yerleşik destek yok eğer doğru değilse () web-socket-js (Flash tabanlı dolgu) WebSockets desteği alabilirsiniz. Bu internet kullanıcılarının büyük bir çoğunluğu kapsamaktadır. Ayrıca, eğer kullandığınız Düğüm sunucu arka uç, o zaman kullanmayı düşünün Socket.IO içeren web-yuva-js olarak bir geri dönüş ve eğer bunu bile kullanılamaz (veya devre dışı) sonra geri düşmek kullanarak ne olursa olsun Comet tekniği için kullanılabilir, belirli bir tarayıcı.

Güncelleme: iOS 6 artık geçerli HyBi/STANDART 6455 standardını destekler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010