我從使用java的android設備連接到使用DefaultHttpClient運行PHP的服務器。檢測來自PHP的android java客戶端連接超時
我正在做的一個測試是檢查,如果服務器需要長時間發送數據,java代碼會正常處理自身。如果確實需要很長時間,則會斷開連接並重試。
目前我有設置在連接超時時間爲3秒:
HttpConnectionParams.setSoTimeout(httpParameters, 3000);
在PHP腳本處於睡眠狀態,持續10秒服務器:
sleep(10);
Java代碼的工作,如果腳本需要3秒以上的時間,然後拋出一個java.net.SocketTimeoutException,然後在少量時間後重試。
PHP腳本繼續運行,它是而不是我想要的。我試過在睡眠函數後直接使用connection_aborted進行測試,但它沒有捕獲已經發生的客戶端斷開連接。
ignore_user_abort(true);
sleep(10);
print "black hole";
flush();
if(connection_aborted()!=0){
// You would think this works but it does not.
}
建議如何處理?
什麼相關的PHP代碼是什麼樣子? – Phil
@在一條簡單的線上睡10秒。 – zaf
@Phil我已經用connection_aborted添加了我的嘗試 – zaf