Was ist der einfachste Weg, „Server-Push“ -ähnlichen Verhalten für eine Webseite zu implementieren?

StackOverflow https://stackoverflow.com/questions/873624

Frage

Ich versuche, einen sehr einfachen 2-Personen-Chatroom für meine Django-Website zu machen. Ich AJAX zu lernen, dies zu tun. Ich brauche Teile der Web-Seite ohne Zutun des Benutzers zu aktualisieren:

  • Wenn Benutzer 1 sendet eine Nachricht, auf Benutzer 2-Bildschirm angezeigt werden soll
  • Wenn Benutzer 1 abmeldet, sein Status auf "offline" auf User 2-Bildschirm
  • ändern sollte

Was ist der einfachste Weg, dies zu implementieren? Ist es nur JavaScript zu verwenden, um den Server in regelmäßigen Abständen abzufragen? Wenn ja, was ist die beste Praxis, dies zu tun? Ich fand ein paar Lösungen über die Verwendung von setInterval oder setTimeout, war aber nicht sicher, ob dies der beste Weg.

(Ich habe gelesen, AJAX über umkehren, aber von dem, was ich gelesen habe dies komplexer zu implementieren Ich brauche nicht meine Lösung schnell oder skalierbar zu sein;. Ich brauche es nur zu arbeiten.)

War es hilfreich?

Lösung

Da Sie sagten, Sie kümmern sich nicht für Comet , die zugegebenermaßen nicht sehr leicht in Gang zu bringen, setInterval wird es tun. Sie wollen intelligent sein darüber, though. Sie sollten wahrscheinlich mit einem Intervall von 30 Sekunden starten. Wenn der Benutzer im Chat beginnt, sollte Ihr Intervall fallen bis auf 5. Wenn Sie immer weniger Wirkung bemerken, Ihre Timer sollte wieder auf 30 Sekunden zerfallen nach unten, und so weiter. Es wird gewinnt keine Preise bei einer Skalierbarkeit Konvention, aber es wird es für die durchschnittliche mittelgroße Website getan.

Für weitere Informationen zu dieser Technik überprüfen Sie diese Frage im Zusammenhang out .

Andere Tipps

Nutzen Sie umkreiste . Auf den ersten Blick ist es einfach für die Augen glasig, beginnen zu murmeln zu kompliziert, aber wenn Sie es übergeben bekommen Sie werden verstehen, was die „best practice“ ist, und warum ist es sowohl schnell als auch skalierbar ist.

Sie finden auch, sich zu merken, dass dies eine hervorragende Technik ist, und kann für Lose verwendet werden von dynamischen Web-Seite Verhalten.

Eine andere Option, die ein bisschen Sie auf halber Strecke trifft, ist WebSync On-Demand (oder einem anderen gehosteten Kometen Service ... nicht sicher, ob es andere gibt). Es lasse Sie die Server-Push-Funktionen implementieren, aber es ist schön und einfach zum Laufen zu bringen, da alles, was Sie tun müssen, ist das JavaScript-Client enthalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top