I am trying to implement Server Sent Events(SSE) in Django Framework. It is clear to me that I can implement a view
like this:
@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
But I want to trigger the SSE call whenever a new entry is made in a database table, from the post_save
of the table, How I might be able to achieve that here since eventStream
here is a generator function.
Django is build around the request/response cycle which means that it doesn't work well with websockets or even SSE. In your example there is no way to propagade the post_save signal to the view unless you use subscribe to a queue (rabbitmq, redis pubsub) in the view and send data in the signal handler.
Consider other solutions to push from the server:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With