文档章节

Netty ChannelPipeline动态修改ChannelHandler

l
 lykin1972
发布于 2016/04/14 16:55
字数 249
阅读 424
收藏 0
点赞 2
评论 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
岳阳
Netty in Action ——— ChannelHandler 和 ChannelPipeline

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

tomas家的小拨浪鼓 ⋅ 2017/10/30 ⋅ 0

第六章:ChannelHandler

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

李矮矮 ⋅ 2016/09/26 ⋅ 0

netty io.netty.channel介绍2

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

andyyuan5546 ⋅ 2015/08/13 ⋅ 0

Netty in Action ——— Netty的组件和设计

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

tomas家的小拨浪鼓 ⋅ 2017/11/06 ⋅ 0

第三章:Netty核心概念

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

李矮矮 ⋅ 2016/09/23 ⋅ 0

Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华 ⋅ 2013/11/24 ⋅ 21

读懂Netty服务端开发(附学习代码)

使用JDK NIO类库时开发NIO的异步服务端时,需要用到:多路复用器Selector,ServerSocketChannel,SocketChanel,ByteBuffer,SelectionKey等。如果用源生的JAVA NIO搭建服务端,无疑是十分复杂的...

@林文龙 ⋅ 06/14 ⋅ 0

【死磕Netty】-----Netty的核心组件

原文出处http://cmsblogs.com/ 『chenssy』 转载请注明原创出处,谢谢! 在第一篇博客中(【死磕Netty】—–NIO基础详解),那一大坨的服务端、客户端代码各位应该看着都会害怕。博主在 15 年写...

chenssy ⋅ 2017/12/03 ⋅ 0

【死磕Netty】—–Netty的核心组件

原文出处http://cmsblogs.com/ 『chenssy』 转载请注明原创出处,谢谢! 在第一篇博客中(【死磕Netty】-----NIO基础详解),那一大坨的服务端、客户端代码各位应该看着都会害怕。博主在 15 年...

chenssy ⋅ 2017/12/03 ⋅ 0

深入理解Netty Channel与Pipeline

引言 Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空...

无寄语 ⋅ 2016/09/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL主从复制原理、半同步操作步骤及原理

1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。...

xiaomin0322 ⋅ 21分钟前 ⋅ 0

Oracle10g 数据及文件迁移过程[原]

QL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 11 10:22:35 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Re......

harrypotter ⋅ 27分钟前 ⋅ 0

nginx安装

1:安装工具包 wget、vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包 wget http://nginx.org/download/nginx-1......

壹丶贰 ⋅ 30分钟前 ⋅ 0

ideaVim安装及配置

1.安装插件 File-Settings-Plugins,Browse Repositories,输入ideavim,安装。 重启后,在Tools-Vim Emulator启用。 2.快捷键设置 ideaViim键与idea快捷键有冲突,可以在Settings-Other Se...

Funcy1122 ⋅ 34分钟前 ⋅ 0

MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B...

浮躁的码农 ⋅ 48分钟前 ⋅ 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 53分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 今天 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 今天 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部