在这一点上,让我们看看由Vert.x提供的RxJava支持,以更好地理解它是如何工作的。在你的pom.xml中加上一下的依赖:
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-rx-java</artifactId>
</dependency>
接下来,改变 <vertx.verticle>的属性值为 io.vertx.sam
ple.MyFirstRXVerticle 。这个属性告诉了这个Vert.x Maven插件,这个verticle是应用程序的入口点。创建新的verticle类(io.vertx.sample.MyFirstRXVerticle),内容如下:
package io.vertx.sample;
// We use the .rxjava. package containing the RX-ified APIs
import io.vertx.rxjava.core.AbstractVerticle;
import io.vertx.rxjava.core.http.HttpServer;
public class MyFirstRXVerticle extends AbstractVerticle {
@Override
public void start() {
HttpServer server = vertx.createHttpServer();
// We get the stream of request as Observable
server.requestStream().toObservable()
.subscribe(req ->
// for each HTTP request, this method is called
req.response().end("Hello from "
+ Thread.currentThread().getName())
);
// We start the server using rxListen returning a
// Single of HTTP server. We need to subscribe to
// trigger the operation
server
.rxListen(8080)
.subscribe();
}
}
Vert.x版的RxJava变体由于rxjava包提供。RxJava方法的前缀是rx,比如rxListen。此外,api还通过提供Observable对象的方法进行了增强,您可以在该对象上订阅接收所传递的数据。