Vielen Dank für den Code, dbr . Nur ein kleiner Tippfehler in long_poller.htm um die Linie
1000 /* ..after 1 seconds */
Ich denke, es sollte sein
"1000"); /* ..after 1 seconds */
damit es funktioniert.
Für diejenigen, die es interessiert, habe ich ein Django-Äquivalent ausprobiert. Starten Sie ein neues Django-Projekt, sagen wir lp für lange Abfragen:
django-admin.py startproject lp
Aufruf der App msgsrv für Nachrichten-Server:
python manage.py startapp msgsrv
Fügen Sie die folgenden Zeilen hinzu einstellungen.py zu haben Vorlagen Verzeichnis:
import os.path
PROJECT_DIR = os.path.dirname(__file__)
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, 'templates'),
)
Definieren Sie Ihre URL-Muster in urls.py als solche:
from django.views.generic.simple import direct_to_template
from lp.msgsrv.views import retmsg
urlpatterns = patterns('',
(r'^msgsrv\.php$', retmsg),
(r'^long_poller\.htm$', direct_to_template, {'template': 'long_poller.htm'}),
)
Und msgsrv/ views.py aussehen sollte:
from random import randint
from time import sleep
from django.http import HttpResponse, HttpResponseNotFound
def retmsg(request):
if randint(1,3) == 1:
return HttpResponseNotFound('<h1>Page not found</h1>')
else:
sleep(randint(2,10))
return HttpResponse('Hi! Have a random number: %s' % str(randint(1,10)))
Schließlich, Vorlagen/ long_poller.htm sollte dasselbe sein wie oben, wobei der Tippfehler korrigiert wurde. Ich hoffe, das hilft.