在这一点上,让我们看看由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对象的方法进行了增强,您可以在该对象上订阅接收所传递的数据。

results matching ""

    No results matching ""