我怎样才能避免每五秒钟就建立一个新的联系呢?



每隔五秒一个函数:

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

的轻量级替代品
  • Unix curl实用程序
  • java脚本中的Ajax调用

假设我们想要在EXPIRY_TIME之后删除客户端的数据。

我认为两种方法之一可以采用:

  1. 您可以在会话修改时间(建议最后访问时间)中检查一些cron作业(调度器)
  2. 对于每个客户端请求,在平面文件系统中设置访问日志,并在访问日志
  3. 中检查cron作业。

在任何情况下,如果最后访问时间> EXPIRY_TIME,则删除客户端的数据。

这种方法将节省往返路程,有助于减少交通。

任务完成后可以释放连接。无论如何,java web服务器被设计为接受多个请求。

相关内容

  • 没有找到相关文章

最新更新