[英]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.