我已經將Tornado設置爲Websocket服務器,並且工作正常。Websocket內部的龍捲風協程
但是,我想在websocket上接收數據流,將其排隊,然後通過HTTP POST請求實時分塊傳輸編碼將其上傳到第二個服務器。我正在使用python請求庫來執行POST(它支持從生成器獲取塊)。
沒有協程,這不起作用 - 因爲上傳方法阻止執行,所以新的傳入數據在上傳完成之後纔會被添加到隊列中。
我在我的websocket方法中通過一些裝飾器添加了協程,但現在根本無法工作 - 沒有任何操作通過HTTP POST進行上傳。我甚至嘗試添加像這樣的make_request函數內部收益率(如「調用一個協同程序必須協同程序本身的任何功能,並使用在調用yield關鍵字」根據龍捲風文檔):
data = yield self.read_queue()
但是拋出了一個語法錯誤。 示例代碼是here。
我在Python 3.4上。