我有一个 RESTful 服务器,可以将大块 JSON 发送回客户端。我已经在 Grails 中实现了服务器,为了进行一些基准测试,我在 vert.x 中重写了它。
一切正常,除了 gzip 压缩,我还没有找到在 vert.x 中激活它的方法我已经在 vert.x 站点、here 和 Google 中搜索了答案,但我找不到任何信息,所以我尝试通过在此处发布来获得答案:)
vert.x 上是否有 gzip 响应?
提前致谢!
我有一个 RESTful 服务器,可以将大块 JSON 发送回客户端。我已经在 Grails 中实现了服务器,为了进行一些基准测试,我在 vert.x 中重写了它。
一切正常,除了 gzip 压缩,我还没有找到在 vert.x 中激活它的方法我已经在 vert.x 站点、here 和 Google 中搜索了答案,但我找不到任何信息,所以我尝试通过在此处发布来获得答案:)
vert.x 上是否有 gzip 响应?
提前致谢!
VertX 3.x 中的压缩支持稍作修改。
现在可以通过(Java 示例)打开它:
HttpServerOptions serverOptions = new HttpServerOptions();
serverOptions.setCompressionSupported(true);
HttpServer server = vertx.createHttpServer(serverOptions);
我想我已经找到了自己问题的答案...
在 vert.x 2.1M1 中,他们将 HTTP 压缩添加到HttpServer
和DefaultHttpServer
. 要激活它,您必须使用方法setCompressionSupported(true)
。
即使我使用 vert.x 2.1M1,它似乎对我也不起作用。这是因为我使用的是 Groovy,而 vert.x mod-lang-groovy 从 2.0.0 版开始就没有更新过。
所以 Java vert.x 库允许压缩,但包装 Java 库的 Groovy 库不允许。该setCompressionSupported(true)
方法给了我一个 NotSuchMethod 异常。
我找到了解决方法。我使用toJavaServer()
方法来恢复 Groovy 中的 Java HttpServer,并调用setCompressionSupported(true)
这个 Java HttpServer。
现在我在我的 Groovy verticles 中进行了 HTTP 压缩 :)