使用PHP SoapServer類可以將數據按計算流式傳輸回客戶端嗎?PHP SoapServer類允許流式傳輸大量數據嗎?
我知道這是可能使用ASP.NET
http://msdn.microsoft.com/en-us/library/aa528818.aspx
如果不是,是有可能實現嗎?據我瞭解的肥皂設施,他們只允許我的函數返回一大塊數據,一旦完成圖書館將它轉換成一個大的肥皂信息...: -/
在此先感謝: )
使用PHP SoapServer類可以將數據按計算流式傳輸回客戶端嗎?PHP SoapServer類允許流式傳輸大量數據嗎?
我知道這是可能使用ASP.NET
http://msdn.microsoft.com/en-us/library/aa528818.aspx
如果不是,是有可能實現嗎?據我瞭解的肥皂設施,他們只允許我的函數返回一大塊數據,一旦完成圖書館將它轉換成一個大的肥皂信息...: -/
在此先感謝: )
簡而言之,這對於SoapServer類來說是不可能的。
當前的實現會在生成XML文檔時檢查參數的有效性(以確保不會發送瘋狂的無效SOAP參數)。
雖然有可能實現你在擴展中要求的東西,但我會是一個重大的改變,因爲它必須在參數上循環兩次,一次檢查有效性(以便他們可以扔肥皂故障),然後再次序列化到客戶端。
這也是可能在您的PHP腳本中的userland中實現此操作,但這需要您手動序列化所有響應數據(因爲內置類不會向您公開此功能)。如果您控制請求的兩端(客戶端和服務器),並且不需要利用服務器庫提供的任何「高級」soap功能,則這不是一個糟糕的選項。
爲此,您只需發送一個標準的SOAP XML標頭,然後在將數據直接寫入客戶端時將其轉換爲XML。
soap擴展可以接收流而不是字符串,然後從流中讀取,編碼併發送到客戶端,直到流結束。我不知道它會有多難(我不熟悉代碼庫),但我沒有得到你的雙循環參數。 – Artefacto 2010-06-23 19:07:33
問題在於庫無法及時檢測到編碼錯誤(即將響應轉換爲SOAP錯誤),因爲它已經發送了輸出和標題。一個soap故障應該發送一個500狀態代碼,如果它在結果中驗證了所有參數之前開始發送輸出,它就無法做到這一點。 – 2010-06-23 19:41:01