Я пытаюсь реализовать длительный опрос HTTP для веб-запроса, но не могу найти подходящий пример в документации по каналам, все о веб-сокетах.Как сделать длительный опрос HTTP с каналами Django
Что мне нужно сделать, потребляя сообщение HTTP или:
- ждать сообщения о группе, которая будет отправлена, когда определенная модель сохраняется (с использованием сигналов, вероятно)
- ожидания для таймаут, если не получено ни одного сообщения
, а затем вернуть что-то клиенту.
Сейчас у меня есть код, который можно увидеть в примерах:
def http_consumer(message):
# Make standard HTTP response - access ASGI path attribute directly
response = HttpResponse("Hello world! You asked for %s" % message.content['path'])
# Encode that response into message format (ASGI)
for chunk in AsgiHandler.encode_response(response):
message.reply_channel.send(chunk)
Так что я должен вернуть что-то в этом http_consumer
, что будет означать, что у меня нет ничего, чтобы отправить, на данный момент, но я не могу Здесь нет блока. Может быть, я просто ничего не могу вернуть? И тогда я должен поймать новое сообщение в определенной группе или достигнуть таймаута и отправить ответ клиенту.
Кажется, что мне нужно будет хранить message.reply_channel
где-то так, что я могу ответить позже, но я в недоумении относительно того, как:
- поймать сообщение группы и сгенерировать ответ
- генерировать ответ, когда сообщение не получено (тайм-аут), может быть, сервер задержки может работать здесь?