2017-01-09 46 views
5

Django Çerçevesinde Sunucu Gönderilen Olayları (SSE) uygulamaya çalışıyorum. Şimdi durumda bir view uygulayabilir bana açıktır:Django Server'ı Kullanma Veritabanı gönderimi ile Gönderilen Olaylar Kaydetme

@csrf_exempt 
def event_stream(request): 
    def eventStream(): 
     yield "data:Server Sent Data\n\n" 

    response = HttpResponse(eventStream(), content_type="text/event-stream") 
    response['Cache-Control'] = 'no-cache' 
    return response 

Ama tablonun post_save, nasıl olabilir gelen yeni bir giriş veri tabanı tablosundaki yapıldığında SSE aramayı tetiklemek istiyorum Burada eventStream'dan bu yana bir jeneratör fonksiyonu olduğu için bunu başarmak mümkün.

cevap

7

Django o WebSockets hatta SSE ile iyi çalışmıyor anlamına gelir istek/yanıt döngüsü çevresinde oluşturulmuştur kullanın gerekir. Örneğinizde, görünümde bir kuyruğa (rabbitmq, redis pubsub) abone olmadıkça ve sinyal işleyicisine veri göndermediğiniz sürece, post_save sinyalini görünüme yaymanın bir yolu yoktur. Django kanalları olduğunu

  • Django channels
  • nodejs gibi bir Asynchronus çözümü veya onun yerine ya yanında tornado

    • Uzun yoklama tüm arasında
  • +0

    Django:

    sunucudan itmek için başka çözümler düşünün etkileyicisi. – Shubham