RxNetty

Apache
Java
跨平台
Netflix
2015-05-15
叶秀兰

RxNetty 是 Netty 响应式扩展(Rx) 适配器。

代码示例:

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());
            try {
                if ("/error".equals(request.getPath())) {
                    throw new RuntimeException("forced error");
                }
                response.setStatus(HttpResponseStatus.OK);
                response.writeString("Path Requested =>: " + request.getPath() + '\n');
                return response.close();
            } catch (Throwable e) {
                System.err.println("Server => Error [" + request.getPath() + "] => " + e);
                response.setStatus(HttpResponseStatus.BAD_REQUEST);
                response.writeString("Error 500: Bad Request\n");
                return response.close();
            }
        });
        server.start();
        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);
        server.shutdown();
    }
}

输出:

Server => Request: /
Client => Path Requested =>: /

Server => Request: /error
Server => Error [/error] => java.lang.RuntimeException: forced error
Client => Error 500: Bad Request

Server => Request: /data
Client => Path Requested =>: /data


加载中
请先登录后再评论。

暂无资讯

暂无问答

java 工具包集

工具名称 官网网址 相关网址 功能描述 apache Druid https://druid.apache.org/docs/latest/design/ https://blog.csdn.net/mingtianhaiyouwo/article/details/50340873 Aop alliance https...

2019/10/09 15:27
23
0
Spring Cloud Gateway 、Zuul、EdgeService性能对比

关键字:网关,Zuul,Gateway,Spring Cloud, ServiceComb,Edge Service性能测试,微服务 作者 | 李昂 导读 本文对几种流行的 API 网关以关键指标 RPS 为依据,利用 wrk 做出性能测评并且给...

[Android] Android 常见第三方库汇总地址

Android 常见第三方库汇总地址 https://github.com/wasabeef/awesome-android-libraries List of Android Libraries This is an alphabetical list of libraries for Android development, t...

2019/04/12 21:53
11
0
springcloud(十二):Ribbon客户端负载均衡介绍

springcloud(十二):Ribbon客户端负载均衡介绍 Ribbon简介 使用分布式微服务脚骨的应用系统,在部署的时候通常会为部分或者全部微服务搭建集群环境,通过提供多个实例来提高系统的稳定型。既...

2019/06/19 10:14
11
0
新建Eureka 加入 jar包依赖后启动 报错

新建Eureka 加入 jar包依赖后启动 报错 D:\java\jdk1.8.0_191\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:49505,suspend=y,server=n -XX:TieredStopAtLevel=1 -nov...

06/18 11:36
8
0
Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatche...

<div id="cnblogs_post_body" class="blogpost-body"><p><strong>错误如下:</strong></p> <div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"...

2019/05/09 16:49
7
0
反应式编程详解

转载:https://blog.csdn.net/Tencent_TEG/article/details/89426751 反应式编程详解 | 导语 反应式编程是在命令式编程、面向对象编程之后出现的一种新的编程模型,是一种以更优雅的方式,通...

2019/08/02 10:17
11
0
java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)...

"C:\Program Files\Java\jdk1.8.0_60\bin\java" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote....

2019/10/07 23:08
3
0
Netty5:Maven编译打包JAR时,Netty4误入导致数据读取报错

昨天下午碰到这个问题,百度,google都不好使,能用的资料太少,在此记录下。 同时也给遇到相同问题的朋友一些参考。 ```` 14:31:18.336 [nioEventLoopGroup-1-0] WARN io.netty.channel.ni...

2016/10/09 18:04
1.6K
0
Spring 5 新特性:函数式Web框架

Spring 5, 函数式Web框架

2016/11/06 17:40
288
1

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部