Hi. I have started to write an asynchronous WSGI implementation for Twisted Web. The code is available from a Mercurial repository: http://hg.mperillo.ath.cx/twisted/twsgi/ The WSGI application is executed in the main Twisted thread, and the application will be able to directly use Twisted features. The reason I'm doing this is because I have written a WSGI implementation for Nginx: http://hg.mperillo.ath.cx/nginx/ngx_http_wsgi_module and I would like to have a *similar* implementation written in pure Python, for testing purpose. I have some questions: * What's the use of __metaclass__ = type in twisted.web.wsgi ? * Is request.content always buffered (in memory or temporary file)? * In my ngx_http_wsgi_module, when the yielded string can not be sent to the client (because OS buffer is full), I suspend the execution of the application, and resume it when the socket is ready. I want to do the same with Twisted, and the way to go is to be a push producer. However I don't know how to implement and use the IPushProducer interface for _WSGIResponse. By the way: it seems that the WSGI implementation in Twisted Web has some bugs: * close method of the application iterator is not called in case of errors * _sendResponseHeaders does not check if start_response has been called Thanks Manlio
participants (4)
-
exarkunï¼ twistedmatrix.com
-
Manlio Perillo
-
ssteinerXï¼ gmail.com
-
Steve Steiner (listsin)