RxNetty (Reactive Extension Adaptor for Netty) es una pequeña librería Java que sobre Netty ofrece un enfoque reactiva para la programación de clientes y servidores HTTP.
La mejor forma de ver lo que ofrece es revisar uno de sus ejemplos.
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.reactivex.netty.RxNetty;
import io.reactivex.netty.protocol.http.server.HttpServer;
import java.nio.charset.Charset;
public final class RxNettyExample {
public static void main(String… args) throws InterruptedException {
HttpServer<ByteBuf, ByteBuf> server = RxNetty.createHttpServer(8080, (request, response) -> {
System.out.println("Server => Request: " + request.getPath());
if ("/error".equals(request.getPath())) {
throw new RuntimeException("forced error");
response.setStatus(HttpResponseStatus.OK);
response.writeString("Path Requested =>: " + request.getPath() + ‘n’);
System.err.println("Server => Error [" + request.getPath()
+
"] => " + e);
response.setStatus(HttpResponseStatus.BAD_REQUEST);
response.writeString("Error 500: Bad Requestn");
RxNetty.createHttpGet("http://localhost:8080/")
.flatMap(response -> response.getContent())
.map(data -> "Client => " + data.toString(Charset.defaultCharset()))
.toBlocking().forEach(System.out::println);
RxNetty.createHttpGet("http://localhost:8080/error")
.flatMap(response -> response.getContent())
.map(data -> "Client => " + data.toString(Charset.defaultCharset()))
.toBlocking().forEach(System.out::println);
RxNetty.createHttpGet("http://localhost:8080/data")
.flatMap(response -> response.getContent())
.map(data -> "Client => " + data.toString(Charset.defaultCharset()))
.toBlocking().forEach(System.out::println);
En el ejemplo de arriba podemos ver lo sencillo que es crear un servidor HTTP y la forma de invocarlo.
Para usarlo basta con incluir la dependencia:
(podéis encontrarlo aquí: http://search.maven.org/#search%7Cga%7C1%7Cio.reactivex.rxnetty)
Podemos encontrar muchos más Ejemplo de clients y servidores usando RxNetty en ejemplos


Deja un comentario