2012-03-08 31 views
1

我正在使用Django和TornadIO2/Tornado編寫socket.io應用程序。在TonradIO2會話中,我可以訪問Tornado的HTTPRequest對象。但是,我無法在SocketConnection類的事件處理程序中訪問django請求對象。理想情況下,我希望在到達我的事件處理程序之前,所有已配置的django中間位置都可以在請求對象上執行。我可以明確地將它們稱爲中間位置,但我需要首先將HTTPRequest對象轉換爲Django HttpRequest或Django WSGIRequest對象。有關如何實現這一目標的任何建議?如何將龍捲風HTTPRequest轉換爲Django HttpRequest或WSGIRequest?

回答

1

Tornado的WSGIContainer「在Tornado的HTTP服務器上運行WSGI兼容函數」和「 - 用於讓其他框架(Django,web.py等)運行在Tornado HTTP服務器和I/O循環。」

+0

使用WSGIContainer會繞過TornadIO的socket.io協議處理。我想要做的就是使用TornadIO作爲socket.io通信協議處理程序,然後在事件傳遞給我的事件偵聽器之前調用Django的魔法。 – 2012-03-08 16:17:53

+0

我結束了使用'WSGIContainer',並找到一種方法使它仍然使用TornadIO2進行socket.io處理。請參閱https://github.com/tgcondor/django-tornadio2/blob/master/django_tornadio2/management/commands/runserver_tornadio2.py上的示例代碼。感謝你的回答。 – 2012-07-15 07:41:09