我需要編程一個無狀態服務器來執行遠程方法。客戶端使用帶有JSON參數的REST來傳遞方法名稱及其參數。服務結果後,會話關閉。我必須使用Indy10,TCP/IP作爲協議,因此請看使用IdHTTPServer。無狀態HTTP會話中的進度反饋
大型結果集由Indy10分塊併發送給客戶端。現在
我的問題是:
在服務器上的方法提供進度信息,如果他們需要較長時間才能產生效果。這些是短消息。我怎樣才能回信給客戶?
到目前爲止,我已經在服務器上使用了writeflush
,但客戶端在返回完整結果集(包括進度信息)之前等待請求結束。我能做些什麼來在客戶端上顯示/處理這些進度信息,同時保持連接處於打開狀態,以接收同一請求的更多數據?
我需要使用TIdHTTPServer,因爲我正在實現REST(一個GET參數來自TIdHTTP)。我很樂意使用像writebufferflush這樣的東西,但是我沒有得到它的工作 - 我總是在消息箱中獲得第一個寫入,然後其餘部分被丟棄。 – 2010-08-03 13:23:12
請參閱我的編輯,我的建議是在客戶端使用TIdTCPClientCustom而不是TIdHTTP,以對服務器響應的處理進行完全控制 – mjn 2010-08-03 14:37:43