README.adoc

Vert.x RxJava extension examples

Here you will find examples demonstrating Vert.x RxJava extension in action.

Vert.x RxJava extension provides Rxified version of the Vert.x APIs. Please consult the Vert.x RxJava manual for detailed documentation on Vert.x core.

RxJava Http examples

These examples shows the Rxified HTTP api.

Simple

A simple http server and client.

The server uses an Observable<HttpServerRequest> to serve request:

The client uses an Observable<HttpClientRequest and applies flatMap to get a Observable<Buffer>

Reduce

Same as simple example however the client applies several operations on this observable to end with the http client response:

  • flatMap transforms the Observable<HttpClientResponse>Observable<Buffer>

  • reduce merge all response buffers in a single buffer

  • map transform the buffer to a string

  • subscribe delivers the response content

Zip

A variation of the simple example with two client requests mapped to an Observable<JsonObject> and then zipped in a single json object.

The main interest is to get the final result when the two responses are delivered.

Unmarshalling

The http client json response is unmarshalled to a Java object: the RxHelper.unmarshaller static method creates an Rx operator applied to the response via the lift.

RxJava event bus examples

The event bus provides a natural fit with the Rx api.

Publish / Subscribe

A reinterpreation of the core publish / subscribe example with the subscriber using the Rx api.

Ping / Pong

An example of sending, receiving and replying to messages using the Rx api.

Zip replies

The example Sender sends two messages over the event bus and wait for replies, the zip operation is applied to deliver a single reply when the two replies are received.

RxJava Database examples

Jdbc example

An example showing the Jdbc Service Rxified api, after the client connected to the database, it chains operations via the flatMap operation and then subscribes to the result.

Mongo example

An example showing the Mongo Service Rxified api, after the client connected to Mongo, it chains createCollection and insert via flatMap and then subscribes to the result to do a query in the onComplete.

Scheduler examples

Vertx for RxJava provides schedulers for performing delayed, periodic actions.

Periodic events

RxJava timer can use Vertx scheduler for scheduling actions on the event loop, this example shows a 1 second periodic observable scheduled on Vertx event loop.

Blocking action example

When an Observable operation is blocking, a blocking Vertx scheduler can be used to perform the action, this examples shows how blocking operation can be scheduled on Vert.x