Я пытаюсь реализовать комету в своем приложении и, будучи неопытным с JavaScript, не знаю, как сделать клиентскую сторону.Реализация кометы на стороне клиента
Когда сервер получает запрос, он просто держит его открытым и записывает в него данные при необходимости:
def render_GET(self, request):
print "connected"
request.write("Initiated\r\n")
reactor.callLater(random.randint(2, 10), self._delay, request)
return NOT_DONE_YET;
def _delay(self, request):
print "output"
self.count += 1
request.write("Hello... {0}\r\n".format(self.count))
reactor.callLater(random.randint(2, 10), self._delay, request)
Я использую JQuery на стороне клиента до сих пор, но я не могу понять как заставить его работать с сервером. I've been looking at the jQuery.AJAX documentation, и ни один из обратных вызовов не сказал: «Эй, я только что получил данные!», Они только говорят: «Запрос закончен».
Я думал, что функция dataFilter()
было то, что я хотел, так как она позволяет обрабатывать необработанные данные перед завершает запрос, но это только позволяет вам сделать это просто перед тем завершает запрос, а не как вы получаете данные.
Итак, как я могу получать данные непрерывно через открытый запрос? Как вы можете видеть в примере на python, каждый фрагмент данных разделен на \r\n
, поэтому я хочу, чтобы JavaScript работал как линейный приемник. Возможно ли это с помощью jQuery или мне нужно напрямую играть с XMLHttpRequest/ActiveXObject? Есть ли (простая, легкая) библиотека, доступная для линейного приемника?
Я надеюсь услышать о существующей библиотеке и, как реализовать это самостоятельно, так как до сих пор у меня была плохая неудача с библиотеками комет, и на данный момент я надеюсь просто написать код Мне нужно и не беспокоить всю библиотеку.
Удивительный, спасибо –
Теперь проект выглядит полностью мертвым. –