我正在使用netty 4.0。25编写netty HTTP服务器的最终步骤。我需要根据HTTP GET请求中的一些参数在管道中添加各种处理程序。
pipeline.addLast(new HttpRequestDecoder(4096, 8192, 8192, false),
new HttpResponseEncoder(),
new HttpObjectAggregator(1048576),
decisionHandler
);
如果多个请求来自同一连接,则使用相同的管道。Request1可能需要Handler1,Request2可能需要Handler2,Request3可能需要Handler3。假设请求以Request1、Request2、Request3的形式出现。Request1将修改管道以添加Handler1。
>
或者我应该在转到下一个处理程序(FireChannelRead(对象))之前删除处理程序?是否会对性能产生影响?
还有别的办法吗?
谢啦
谷田
动态操作管道是一项相对昂贵的操作。如果您试图实现的只是一个简单的交换用例,比如委托,那么您可以编写一个处理程序来实现它。例如:
public class SwitchCaseHandler extends ChannelInboundHandlerAdapter {
private final ChannelInboundHandler handler1 = ...;
private final ChannelInboundHandler handler2 = ...;
private final ChannelInboundHandler handler3 = ...;
...
@Override
public void channelRead(ctx, msg) {
if (isForHandler1(msg)) {
handler1.channelRead(ctx, msg);
} else if (isForHandler2(msg)) {
handler2.channelRead(ctx, msg);
} ...
}
}
请注意,handler[1 | 2 | 3]
实际上不需要是ChannelInboundHandler
。您可以定义一个非常简单的接口,如下所示:
public interface ChannelMessageHandler {
void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception;
}
无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n
我有一些方程式,我想根据它进行计算并更新这些值。我找不到任何功能在任何逻辑与此有关。有什么办法实现这一点吗?
本文向大家介绍Android 实时监测(监听)网络连接状态变化,包括了Android 实时监测(监听)网络连接状态变化的使用技巧和注意事项,需要的朋友参考一下 看了网上的很多,都不是自己想要的。所以自己就参考着写了一个。 实现这个的方法很多,我是想的这种,如果哪有不足,有bug的地方希望大家指出,共同进步。。。。 先简单说一下思路:网络变化时系统会发出广播。所以我们监听这个广播,利用接口回调通知a
来自服务器的数据以及是否挂起或导致错误 UI状态如切换,警报和错误消息 自定义主题,凭据和本地化 许多其他类型的状态 Redux using ng2-redux Angular Services and RxJS(推荐)
管理应用程序状态是个难题。您需要在多个后端,Web workers和UI组件之间进行协调。 像Redux和Flux这样的模式旨在通过使这种协调更加明确来解决这个问题。在本文中,我将展示如何使用RxJS在几行代码中实现类似的模式。然后我将展示如何使用这种模式来实现一个简单的Angular 2应用。 在谈论架构模式时,我喜欢从描述其核心属性开始。你可以写在餐巾背上的东西。The devil, of c
建议使用基于redux封装出来的rematch, anujs也自带了这个框架。 rematch的官网 https://github.com/rematch/rematch resolve: { alias: { react: "anujs", "react-dom": "anujs", rematch: "anujs/dist/Rematch.js