public abstract class AbstractRemoteAddressFilter<T extends java.net.SocketAddress> extends ChannelInboundHandlerAdapter
Channel
的功能。
如果你想实现你自己的基于IP的过滤器,你应该继承这个类。 基本上你必须实现accept(ChannelHandlerContext, SocketAddress)
来决定你是要接受还是拒绝来自远程地址的连接。
此外,覆盖channelRejected(ChannelHandlerContext, SocketAddress)
可让您灵活地响应拒绝(拒绝)的连接。 如果您不想发送回复,只需让回复为空。 详情请看RuleBasedIpFilter
。
ChannelHandler.Sharable
Constructor and Description |
---|
AbstractRemoteAddressFilter() |
Modifier and Type | Method and Description |
---|---|
protected abstract boolean |
accept(ChannelHandlerContext ctx, T remoteAddress)
在 Channel 获得注册后立即调用此方法。
|
protected void |
channelAccepted(ChannelHandlerContext ctx, T remoteAddress)
如果这种方法被称为
remoteAddress 得到由接受
accept(ChannelHandlerContext, SocketAddress) 。
|
void |
channelActive(ChannelHandlerContext ctx)
|
void |
channelRegistered(ChannelHandlerContext ctx)
|
protected ChannelFuture |
channelRejected(ChannelHandlerContext ctx, T remoteAddress)
如果这种方法被称为
remoteAddress 被否决
accept(ChannelHandlerContext, SocketAddress) 。
|
channelInactive, channelRead, channelReadComplete, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerAdded, handlerRemoved
public void channelRegistered(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRegistered()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelRegistered
在界面
ChannelInboundHandler
channelRegistered
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
public void channelActive(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelActive()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelActive
在界面
ChannelInboundHandler
channelActive
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
protected abstract boolean accept(ChannelHandlerContext ctx, T remoteAddress) throws java.lang.Exception
Channel
获得注册后立即调用此方法。
java.lang.Exception
protected void channelAccepted(ChannelHandlerContext ctx, T remoteAddress)
remoteAddress
得到由接受accept(ChannelHandlerContext, SocketAddress)
。
如果您想处理(例如响应)已接受的地址,则应该覆盖它。
protected ChannelFuture channelRejected(ChannelHandlerContext ctx, T remoteAddress)
remoteAddress
被否决accept(ChannelHandlerContext, SocketAddress)
。
如果您想处理(例如回复)拒绝的地址,则应该覆盖它。
ChannelFuture
如果您执行I / O操作,以便Channel
完成后可以关闭。
否则为空。
Copyright © 2008–2018 The Netty Project. All rights reserved.