2016-06-03 49 views
10

Sürekli güncellemeleri yönetmek için şu anda yoklamayı kullanan bir web uygulamasına sahibiz.PHP ve Symfony ile Websockets - ağ ve sunucu mimarisi

Uzun yoklama geçişi, konuyla ilgili küçük bir bandaid olabilir, dayanıklı ve ölçeklenebilir bir Websockets çözümü uygulamak istedik.

Soruma ilişkin soru: Bu için ne tür bir mimari gerekli?

Kendimi biraz araştırma yaptık ve kurumsal uygulama için tipik kurulum böyle bir şey olduğunu bulduk

:

  1. : websocket flow

    bir bağlantının yürütme akış sonra böyle bir şey olurdu İlk tokalaşma

    • İstemci bir WebSocket'e bağlantısı istemek için JS ile birlikte Server bir HTTP İsteği yapar
    • Server cevap verir, HeaderUpgrade yönergesini içeren ve İstemci bir POST/PUT/vs gönderir
  2. müşteri ile Websocket bağlantı kuracağı anlamına istemci
  3. WebSocket'e Server için protokoller geçer.
    • Webserver (Apache/Nginx)
    • Webserver bu
    • MessageMQ
    • Message den Websocket sunucuya gönderilir sıraya eklenir MQ sonucu gönderir geri gönderilir terimi sonucu getirir istemci

t mı yaklaşımı doğru mu? Ben bir şey eksik miyim? Yanlış bir şey mi anladım? Şuna bir bakar sahip

+0

Symfony2 sanırım en iyi fikir değil, her neyse, symfony denetleyicisinde Websocket bağlantısı oluşturmak istediğinizi anlıyoruz, değil mi? – Griva

+0

Nginx ve nodejs arasında neden MessageQueue'ye ihtiyacınız var? Nodejs çoklu istekleri ele alırken mükemmeldir ... Ayrıca, NAPX'in kendi başına protokol güncellemesini yapabilmesi nedeniyle HAPROXY'ye gerek yoktur. Bu kadar karmaşık olmak ister misiniz? Neredeyse aynı kurulumla benzer bir çözüm buldum ve bunu korumak çok zordu.Çoğu zaman oturum verilerini nginx (PHP) 'den nodejs'e geçirmek için bir mekanizmaya ihtiyaç duyduğunuzu unutmayın. –

+0

@MitjaGustin Message Queue, uygulamanın daha büyük bir parçası olacak ve sadece web-yuvalarından daha fazlası için kullanılacaktır. Bu anlamda, Message Queue ile çalışacak bir web çözümünü arıyorum. Öte yandan, HAProxy zor bir gereklilik değildir - başka bir tür Yük Dengeleyici ile değiştirilebilir ve önemsizdir. Böyle bir durumda sadece mimarlık hakkında kaba bir fikir edinmeye çalışıyordum. – user991710

cevap

0

GOS WebSocketBundle'u denediniz mi? Sohbeti yürütmek için üretim alanında kullandım ve stunnel ile birlikte SSL üzerinden kusursuz bir şekilde çalışıyor.

İlgili konular