mirror of
				https://github.com/django/daphne.git
				synced 2025-11-04 09:37:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
		
			801 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			801 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import django
 | 
						|
from django.core.handlers.wsgi import WSGIHandler
 | 
						|
from django.http import HttpResponse
 | 
						|
from channels import Channel
 | 
						|
 | 
						|
 | 
						|
class WSGIInterface(WSGIHandler):
 | 
						|
    """
 | 
						|
    WSGI application that pushes requests to channels.
 | 
						|
    """
 | 
						|
 | 
						|
    def __init__(self, channel_backend, *args, **kwargs):
 | 
						|
        self.channel_backend = channel_backend
 | 
						|
        django.setup()
 | 
						|
        super(WSGIInterface, self).__init__(*args, **kwargs)
 | 
						|
 | 
						|
    def get_response(self, request):
 | 
						|
        request.response_channel = Channel.new_name("django.wsgi.response")
 | 
						|
        Channel("django.wsgi.request", channel_backend=self.channel_backend).send(**request.channel_encode())
 | 
						|
        channel, message = self.channel_backend.receive_many_blocking([request.response_channel])
 | 
						|
        return HttpResponse.channel_decode(message)
 |