文档章节

Netty ChannelPipeline动态修改ChannelHandler

l
 lykin1972
发布于 2016/04/14 16:55
字数 249
阅读 441
收藏 0


在某些情况下 ,我们需要给客户端连接加上定制化的ChannelHandler,不同的管制


已知:我们会在ServerInitializer 的initChannel初始化ChannelPipeline 相关

在创建每一个连接  都会通过该初始化函数构造这一个与客户端的连接通道

如:

ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast(new MessageDispatcherDecoder());
pipeline.addLast(ENCODER);
//pipeline.addLast(new IdleStateHandler(readerIdleTimeSeconds, writerIdleTimeSeconds, 0));
pipeline.addLast("idle_state",new IdleStateHandler(readerIdleTimeSeconds, 0, 0));
pipeline.addLast("server_hander",SERVER_HANDLER);

但是这些都是连接创建的时候初始化的

我们怎么在channelRead(message receive)里面去修改它呢?

比如我要给固定的某一些连接动态的增加一个写入超时?

如下:

ctx.pipeline().remove("idle_state");
ctx.pipeline().addBefore("server_hander","idle_state",
    new IdleStateHandler(readerIdleTimeSeconds, writerIdleTimeSeconds, 0));

先移出掉之前初始化添加的idle_state handler

然后创建一个新的 ,并且放在server_hander 之前

然后就大功搞成了


© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 8
码字总数 3986
作品 0
岳阳
第六章:ChannelHandler

本章介绍 ChannelPipeline ChannelHandlerContext ChannelHandler Inbound vs outbound(入站和出站) Netty提供了一个强大的处理这些事情的功能,允许用户自定义ChannelHandler的实现来处理数...

李矮矮
2016/09/26
24
0
Netty in Action ——— ChannelHandler 和 ChannelPipeline

本文是Netty文集中“Netty in action”系列的文章。主要是对Norman Maurer and Marvin Allen Wolfthal 的 《Netty in action》一书简要翻译,同时对重要点加上一些自己补充和扩展。 概要 Ch...

tomas家的小拨浪鼓
2017/10/30
0
0
netty io.netty.channel介绍2

Interface ChannelHandlerContext 上下文对象使得当前channelhandler可以与其所属的channelpipeline以及其他handler进行交互,可以通知所属channelpipeline中的下一个handler,也可动态修改其...

andyyuan5546
2015/08/13
0
0
Netty in Action ——— Netty的组件和设计

本文是Netty文集中“Netty in action”系列的文章。主要是对Norman Maurer and Marvin Allen Wolfthal 的 《Netty in action》一书简要翻译,同时对重要点加上一些自己补充和扩展。 本章涵盖...

tomas家的小拨浪鼓
2017/11/06
0
0
第三章:Netty核心概念

这一章我们将讨论Netty的10个核心类。 Bootstrap ServerBootstrap EventLoop EventLoopGroup ChannelPipeline Channel Future ChannelFuture ChannelInitializer ChannelHandler 1.Crash Co......

李矮矮
2016/09/23
46
0

没有更多内容

加载失败,请刷新页面

加载更多

FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

大家好!我是赵军,现就职于英特尔的DCG从事基于FFmpeg的硬件优化工作,两年多前加入FFmpeg社区,2018年4月成为FFmpeg的其中的一个FFmpeg Maintainer,主要负责FFmpeg的硬件优化工作。 概览:...

yizhichao
15分钟前
0
0
ehlib 修改 使行号字体颜色 与标题字体颜色 一致

对ehlib 显示效果不够满意,而做的调整 修改这个过程:procedure TCustomDBGridEh.DrawIndicatorCell(ACol, ARow: Longint; AreaCol, AreaRow: Longint; ARect: TRect; AState: TGri......

vga
41分钟前
0
0
Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
23
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部