Sıra tabanlı oyun sunucusu için web soketleri ve uzun yoklama arasındaki farklar


93

Bir iOS oyunu için bir sunucu yazıyorum. Oyun sıra tabanlıdır ve sunucunun istemciye bilgi vermesi için gereken tek zaman rakibin hamlesini bildirmektir.

Web soketlerini kullanma ve uzun yoklama arasındaki performans ve uygulama kolaylığı farklılıkları hakkında yorum yapıp yapamayacağını merak ediyorum. Ayrıca, web soketleri kullandıysam, bunu yalnızca bilgi almak ve diğer her şey için POST istekleri göndermek için mi kullanmalıyım yoksa tüm iletişim web soketi üzerinden mi olmalı?

Ek olarak, bir web istemcisi yapmakla ilgileniyorsam, web yuvaları ve uzun yoklama arasında dikkate alınması gereken fazladan bir şey var mı?


6
Müşteriyi yeni verilerden haberdar etmek için Push Bildirimleri de kullanabilirsiniz. Düşündüğünüz iki çözümden daha verimli (pil açısından) inanıyorum.
pteofil

1
kullanıcı hala uygulamadaysa bu nasıl çalışır?
acidic

4
Siz de bir push bildirimi aldığınızda uygulamada bilgilendirilirsiniz.
pteofil

Yanıtlar:


180

Uzun yoklama nedir?

görüntü açıklamasını buraya girin Geleneksel yoklama tekniğinin bir çeşidi ve bir sunucudan istemciye bilgi aktarımının öykünmesine izin verir. Uzun yoklamayla, istemci sunucudan normal bir yoklamaya benzer şekilde bilgi ister.

  • Sunucuda istemci için herhangi bir bilgi yoksa, boş bir yanıt göndermek yerine, sunucu isteği tutar ve bazı bilgilerin mevcut olmasını bekler.
  • Bilgi kullanılabilir olduğunda (veya uygun bir zaman aşımından sonra), müşteriye eksiksiz bir yanıt gönderilir. İstemci normal olarak daha sonra sunucudan bilgileri hemen yeniden talep eder, böylece sunucu neredeyse her zaman bir olaya yanıt olarak verileri iletmek için kullanabileceği bir bekleme isteğine sahip olur.

    Web / AJAX bağlamında, uzun yoklama, Comet programlama olarak da bilinir .

Peki ya Websockets?

görüntü açıklamasını buraya girin WebSockets, bir istemci ile sunucu arasında, her iki tarafın da herhangi bir zamanda veri göndermeye başlamak için kullanabileceği kalıcı bir bağlantı sağlar.

  • İstemci, WebSocket el sıkışması olarak bilinen bir işlem aracılığıyla WebSocket bağlantısı kurar. Bu işlem, istemcinin sunucuya normal bir HTTP isteği göndermesiyle başlar.
  • Bu talepte, istemcinin bir WebSocket bağlantısı kurmak istediğini sunucuya bildiren bir Yükseltme başlığı bulunur.

Sonuç :

Gerçek zamanlı iletişime ihtiyaç varsa, web soketlerini çok iyi tercih edebilirsiniz.

Ancak Uzun Yoklamada:

Web istemcisi ile web sunucusu arasında bir bağlantı açık tutulur, böylece sunucu yeni bilgi aldığında istemciye iletebilir. Bu istek daha sonra tamamlandı. Daha sonra istemci ve sunucu arasında yeni bir istekte bulunulur ve ardından sunucudan başka bir güncelleme beklenir. Aynı TCP bağlantısı genellikle HTTP / 1.1 canlı tutma nedeniyle birden çok istekte sürekli olarak açılır.

Referanslar ve diğer hususlar:

PubNub uzun yoklama ve soketler - mobil pil ömrü

Uzun Çağırma, Web Soketleri, Sunucu Tarafından Gönderilen Olaylar (SSE) ve Kuyruklu Yıldız Nedir?

hedef-C'de uzun yoklama

Websocket Tanıtımı

Websocket Vs Uzun Yoklama

Uygulamalarda Web Soketlerini Kullanma

Websocket Uygulaması

PushTechnology-Uzun Yoklama

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.