Vertx.io – 如何获得单个http连接的请求数?

为了统计的目的,我想统计一个Http连接上有多less个请求(在一个打开的套接字上有多less个保持活动的请求)。

在node.js中,我可以访问请求和响应对象中的“套接字”,并且可以dynamic地添加一个字段,例如“请求”并将其递增。 我还可以附加'套接字closures'处理程序,然后logging'请求'字段到系统日志,并得到在石墨平均1分钟。

这可能与vertx.io? 我不能findHttpRequest和HttpResponse类中的套接字字段。

没有简单的方法来做到这一点。

你可能会做一个破解: HttpServerRequest实际上是org.vertx.java.core.http.impl.DefaultHttpServerRequest一个实例,它具有私有的ServerConnection conn字段。 这个字段可以通过reflection访问,例如这里描述的: http : //tutorials.jenkov.com/java-reflection/private-fields-and-methods.html 。 请求计数可以通过创build一个连接到整数的映射来实现。

这个破解对于testing目的来说已经足够了,但是由于内存泄漏,我不会在生产环境中工作。 将这个function添加到ServerConnection类的handleMessage方法中并通过JMX公开它会更好。