Django und langes Polling

8

Ich muss lange Abfragen in meiner Anwendung implementieren, um die Ereignisse abzurufen. Aber ich habe keine Ahnung, wie es geht. Ich kenne das Konzept der langen Abfrage, d. H. Die Verbindung offen zu lassen, bis ein Ereignis eintritt. Aber wie kann ich das in meinem Projekt umsetzen? Wenn Sie mir ein einfaches langes Beispiel für die Kundenseite und die Ansichten geben könnten, würde ich es sehr schätzen. Danke!

    
Robin 22.03.2014, 19:26
quelle

1 Antwort

2

sehr einfaches Beispiel:

%Vor%

von der Client-Seite müssen Sie Timeout behandeln und Verbindung erneut öffnen.

Allerdings sollte ich sagen, dass es generell eine schlechte Herangehensweise ist, aus einer Reihe von Gründen:

  • es ist rechenintensiv für Client und Server
  • es ist sinnvoll gegenüber der Umgebung, z.B. Timeouts
  • es unterliegt immer noch einer Verzögerung von 1 Sekunde (time.sleep () im Beispiel)

In den meisten Fällen funktioniert das Überprüfen von Antworten in setTimeout () alle 3-5-10 Sekunden einwandfrei und es ist in Bezug auf Ressourcen effizienter.

Aber es gibt noch eine dritte Option, die noch besser ist. In der Tat war lange Polling eher eine historische Sache, wenn es nichts anderes zu tun gab, um Echtzeit-Updates zu erhalten. Websockets sind schneller, kostengünstiger und jetzt in Django verfügbar .

    
Marat 30.03.2014 13:40
quelle

Tags und Links