2015-07-30 11 views
29

Bir iOS oyunu için bir sunucu yazıyorum. Oyun dönmeye dayanır ve sunucunun müşteriye bilgi aktarması için gereken tek zaman rakibin hareketini bildirmektir.Websockets ve sıra tabanlı oyun sunucusu için uzun yoklama arasındaki farklar

Websockets kullanımı ve uzun yoklama kullanımı arasında performans ve uygulama farklarının kolaylığı hakkında yorum yapabileceği konusunda merak ediyorum. Ayrıca, websockets kullanmış olsaydım, sadece bilgi almak ve diğer her şey için POST istekleri göndermek için ya da tüm iletişim websocket aracılığıyla olmalıdır?

Ayrıca, bir web istemcisi yapmakla ilgilenirseniz websockets ve uzun yoklama arasında göz önünde bulundurulması gereken ekstra bir şey var mı?

+3

Ayrıca yeni verilerin müşteri bildirmek için itin Bildirimler kullanabilirsiniz

Using Websockets in Apps

. Düşündüğünüz iki çözümden daha verimli (aküsel) olduğuna inanıyorum. – pteofil

+1

Kullanıcı hala uygulamadaysa bu nasıl çalışır? – acidic

+2

Ayrıca bir itme bildirim aldığınızda app bildirilir. – pteofil

cevap

73

Uzun yoklama nedir?

enter image description here geleneksel yoklama tekniğin bir varyasyonu ve bir müşteriye bir sunucudan bir bilgi itme emülasyonu sağlar. Uzun yoklama ile istemci, sunucudan bilgileri normal bir ankete benzer şekilde ister.

  • sunucu istemci için herhangi bir bilgi mevcut yoksa

    , yerine boş bir yanıt göndermek yerine, sunucunun isteği tutar ve bazı bilgiler kullanılabilir olması için bekler.
  • Bilgi mevcut olduğunda (veya uygun bir zaman aşımından sonra), müşteriye tam bir yanıt gönderilir. İstemci normal olarak olacaktır ve sonra sunucudan bilgi istemekte, böylece sunucusunun neredeyse her zaman bir bekleme isteğine sahip olması, 'un bir olaya yanıt olarak veri iletmek için kullanabilecektir.

    Bir web/AJAX bağlamında, uzun yoklama Kuyruk programlaması olarak da bilinir. Ne Websockets hakkında

?

enter image description here WebSockets her iki taraf herhangi bir zamanda verileri göndermeye başlamak için kullanabileceğiniz bir istemci ve sunucu arasında kalıcı bir bağlantı sağlar.

  • istemci WebSocket el sıkışma olarak bilinen bir süreç yoluyla bir WebSocket bağlantı kurar. Bu işlem, sunucuya düzenli bir HTTP isteği gönderen istemci ile başlar.
  • İstemcinin bir WebSocket bağlantısı kurmasını istediği sunucuyu bildiren bu istekte bir Yükseltme başlığı bulunur.

Sonuç:

sen çok iyi WebSockets seçebilirler Gerçek zamanlı iletişim ihtiyaç varsa.Sunucu yeni bilgiler zaman müşteriye doğru itin böylece

bir bağlantı web istemci ve web sunucusu arasındaki açık tutulur:

Fakat Uzun yoklama'ya

. Bu istek daha sonra bitti. İstemci ve sunucu arasında yeni bir istek daha sonra sunucudan başka bir güncelleme bekler. Aynı TCP bağlantısı genellikle HTTP/1.1 canlı tutma nedeniyle birden çok istekte sürekli olarak açıktır.

Referanslar ve diğer hususlar:

PubNub long polling vs sockets - mobile battery life

What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?

long polling in objective-C

Websocket Introduction

Websocket Vs Long Polling

Websocket Application

PushTechnology-Long Polling

İlgili konular