I have tornado application, that serves websockets connections, and Django app. I want to share open websockets between Django and Tornado (i.e. write to sockets from Django application). What is the easiest way to achieve this?
            Asked
            
        
        
            Active
            
        
            Viewed 789 times
        
    3
            
            
        - 
                    Just to be clear, is this about using websockets as a communication channel between Tornado and WebSockets? – Seanny123 Oct 09 '14 at 21:26
1 Answers
1
            
            
        Easiest way to do it is to use a tornado.wsgi.WSGIContainer wrapping a django.core.handlers.wsgi.WSGIHandler. There is a good example at http://djangosnippets.org/snippets/1748/.
 
    
    
        Zhehao Mao
        
- 1,789
- 13
- 13
- 
                    Do websockets work under WSGI? I was under the impression that nothing asynchronous would work. – Cole Maclean Jun 27 '11 at 16:41
- 
                    Hmm, according to their documentation it does not support asynchronous. Perhaps use one of the other tornado handlers and call the Django app with that. – Zhehao Mao Jun 27 '11 at 17:21
- 
                    Google search for "tornado and django" reveals the following http://lincolnloop.com/blog/2009/sep/15/using-django-inside-tornado-web-server/. Not sure how good it is. – Zhehao Mao Jun 27 '11 at 18:31
- 
                    No, wait a minute, I've got it http://djangosnippets.org/snippets/1748/ says use tornado's WSGIContainer. I'm editing my post. – Zhehao Mao Jun 27 '11 at 18:35
- 
                    Why not simply use django-websockets in such case? Currently I ended up with sending messages to tornado app via rabbitmq and consuming them in child thread. – Vladimir Mihailenco Jun 27 '11 at 20:18
- 
                    The author of django-websockets gives a long explanation of some of the problems here: http://stackoverflow.com/questions/4363899/making-moves-w-websockets-and-python-django-twisted Basically, WSGI is limiting. Your solution seems like it would be OK. – Cole Maclean Jun 27 '11 at 20:36
