我有一个RESTful服务器,可以将大量的JSON发送回客户端。我在Grails中实现了服务器,并且做了一些基准测试,我在vert.x中重写了它。
一切正常,除了gzip压缩之外,我还没有找到一种在vert.x中激活它的方法 我在vert.x网站,这里和谷歌搜索了一个答案,我无法找到任何信息,所以我试着通过在这里发布答案:)
无论如何都要在vert.x上进行gzip响应吗?
提前致谢!
答案 0 :(得分:10)
我想我找到了自己问题的答案......
在vert.x 2.1M1中,他们已将HTTP压缩添加到HttpServer
和DefaultHttpServer
。要激活它,您必须使用方法setCompressionSupported(true)
。
即使我使用vert.x 2.1M1,它似乎也不适合我。这是因为我使用的是Groovy,而自版本2.0.0起,vert.x mod-lang-groovy还没有更新。
所以Java vert.x libs允许压缩,但包装Java的libovs libs不允许。 setCompressionSupported(true)
方法给了我一个NotSuchMethod异常。
我找到了解决方法。我使用toJavaServer()
方法恢复Groovy中的Java HttpServer,并在此Java HttpServer上调用setCompressionSupported(true)
。
现在我的Groovy Verticle中有HTTP压缩:)
答案 1 :(得分:9)
稍微修改了VertX 3.x中的压缩支持。
现在可以通过(Java示例)打开它:
HttpServerOptions serverOptions = new HttpServerOptions();
serverOptions.setCompressionSupported(true);
HttpServer server = vertx.createHttpServer(serverOptions);