3

我有一个 RESTful 服务器,可以将大块 JSON 发送回客户端。我已经在 Grails 中实现了服务器,为了进行一些基准测试,我在 vert.x 中重写了它。

一切正常,除了 gzip 压缩,我还没有找到在 vert.x 中激活它的方法我已经在 vert.x 站点、here 和 Google 中搜索了答案,但我找不到任何信息,所以我尝试通过在此处发布来获得答案:)

vert.x 上是否有 gzip 响应?

提前致谢!

4

2 回答 2

12

VertX 3.x 中的压缩支持稍作修改。

现在可以通过(Java 示例)打开它:

HttpServerOptions serverOptions = new HttpServerOptions();
serverOptions.setCompressionSupported(true);
HttpServer server = vertx.createHttpServer(serverOptions);
于 2016-02-06T11:10:28.180 回答
10

我想我已经找到了自己问题的答案...

在 vert.x 2.1M1 中,他们将 HTTP 压缩添加到HttpServerDefaultHttpServer. 要激活它,您必须使用方法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 压缩 :)

于 2013-11-18T23:21:06.557 回答