[英]How can I avoid making a new conection every five seconds?
每五秒鍾一個功能:
private boolean ping() {
try {
URL pingServerUrl = new URL(serverResourceLocator);
HttpURLConnection connection = (HttpURLConnection) pingServerUrl.openConnection();
if(connection.getResponseCode() == 200) {
lastPingSuccessful = true;
}
System.out.println("pinged");
}catch(Exception exc) {
exc.printStackTrace();
return lastPingSuccessful;
}
return lastPingSuccessful;
}
叫做。 它是ping功能的類型。 它嘗試連接到服務器上的servlet,並發送一些憑證以及URL serverResourceLocator
。 困擾我的是每5秒打開一個新連接。
如何避免呢?
您無法回收HTTP連接。 HTTP是無狀態協議。 最好的辦法是一旦打開連接就不要關閉它,並保持其活動狀態,並從服務器向客戶端發送心跳消息。
如果我想使用該功能,即測試servlet,則最好將連接部分保留在其中; 您可以從測試腳本中獲得更多的覆蓋范圍。 每5秒建立一次連接幾乎沒有任何意義。 服務器不會有任何感覺。
否則,僅將連接存儲為全局變量。 並在每次請求時重用它。
我認為這沒有其他選擇。 您必須建立http連接才能獲取URL的狀態。
以下2是Java的輕量級替代品
假設我們要在EXPIRY_TIME之后刪除客戶端的數據。
我認為可以采用以下兩種方法之一:
在任何情況下,如果上次訪問時間> EXPIRY_TIME,則刪除客戶端的數據。
這種方法將節省往返行程,並有助於減少流量。
作業完成后,您可以釋放連接。無論如何,java webserver都設計為可以處理多個請求。即使每5秒有一個請求到達服務器,這也不成問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.