Почему моя конечная точка событий отправки сервера Django закрывается немедленно? - PullRequest
0 голосов
/ 20 апреля 2019

Я делаю конечные точки для потоковых данных с помощью Django и django-eventstream из Fanout.Но всякий раз, когда я подключаюсь к конечной точке, он возвращает данные, а затем закрывается.Например:

http --stream http://127.0.0.1:8000/stream-api/projects/22/feeds/ 

Ответ:

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 2077
Content-Type: text/event-stream
Date: Fri, 19 Apr 2019 23:57:20 GMT
Grip-Channel: events-project-22; filter=skip-users, user-anonymous; filter=require-sub
Grip-Hold: stream
Grip-Keep-Alive: event: keep-alive\ndata:\n\n; format=cstring; timeout=20
Grip-Link: </stream-api/projects/22/feeds/?link=next&recover=true&es-meta=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJlcyIsImV4cCI6MTU1NTcyMTg0MCwiY2hhbm5lbHMiOlsicHJvamVjdC0yMiJdLCJ1c2VyIjoiYW5vbnltb3VzIn0.-30HrkebKMBxw7RWf_QoNnmE1baWIdID3DrHSL58Et4>; rel=next
Grip-Set-Meta: user="anonymous"
Server: WSGIServer/0.2 CPython/3.6.7
Vary: Cookie
X-Frame-Options: SAMEORIGIN

:

event: stream-open
data:

Я использую Django 2.2 и Django-eventstream для событий отправки на сервер.

Моя конфигурация.routing.py

from django.conf.urls import url
from channels.routing import URLRouter
from channels.http import AsgiHandler
from channels.auth import AuthMiddlewareStack
import django_eventstream

urlpatterns = [
    #url(r'^events/', AuthMiddlewareStack(
    #   URLRouter(django_eventstream.routing.urlpatterns)
    #), {'channels': ['test']}),    
    url(r'^projects/(?P<project_id>[^/]+)/feeds/', AuthMiddlewareStack(
        URLRouter(django_eventstream.routing.urlpatterns)
    ), {'format-channels': ['project-{project_id}']}),

    url(r'', AsgiHandler),
]

urls.py

from django.urls import path, include
import django_eventstream

urlpatterns = [
    #path('events/', include(django_eventstream.urls), {'channels': ['test']}),
    path('projects/<project_id>/feeds/', include(django_eventstream.urls), {'format-channels': ['project-{project_id}']}),

]
...