public abstract class ProxyHandler extends ChannelDuplexHandler
ChannelHandler.Sharable
Modifier | Constructor and Description |
---|---|
protected |
ProxyHandler(java.net.SocketAddress proxyAddress) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
addCodec(ChannelHandlerContext ctx)
添加与代理服务器进行通信所需的编解码器处理程序。
|
abstract java.lang.String |
authScheme()
返回正在使用的认证方案的名称。
|
void |
channelActive(ChannelHandlerContext ctx)
|
void |
channelInactive(ChannelHandlerContext ctx)
|
void |
channelRead(ChannelHandlerContext ctx, java.lang.Object msg)
|
void |
channelReadComplete(ChannelHandlerContext ctx)
|
void |
connect(ChannelHandlerContext ctx, java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, ChannelPromise promise)
|
Future<Channel> |
connectFuture()
返回到目标连接已建立或连接尝试失败时通知的 Future 。
|
long |
connectTimeoutMillis()
以毫秒为单位返回连接超时。
|
<T extends java.net.SocketAddress> |
destinationAddress()
返回通过代理服务器连接的目标地址。
|
void |
exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause)
|
protected java.lang.String |
exceptionMessage(java.lang.String msg)
使用当前协议,验证方案,代理地址和目标地址等公共信息装饰指定的异常消息。
|
void |
flush(ChannelHandlerContext ctx)
|
void |
handlerAdded(ChannelHandlerContext ctx)
子类可以忽略这个方法。
|
protected abstract boolean |
handleResponse(ChannelHandlerContext ctx, java.lang.Object response)
处理从代理服务器收到的消息。
|
boolean |
isConnected()
当且仅当与目的地的连接已成功建立时返回
true 。
|
protected abstract java.lang.Object |
newInitialMessage(ChannelHandlerContext ctx)
返回到代理服务器的连接建立后第一次发送的新消息。
|
abstract java.lang.String |
protocol()
返回正在使用的代理协议的名称。
|
<T extends java.net.SocketAddress> |
proxyAddress()
返回代理服务器的地址。
|
protected abstract void |
removeDecoder(ChannelHandlerContext ctx)
删除
addCodec(ChannelHandlerContext) 中添加的解码器。
|
protected abstract void |
removeEncoder(ChannelHandlerContext ctx)
删除
addCodec(ChannelHandlerContext) 中添加的编码器。
|
protected void |
sendToProxyServer(java.lang.Object msg)
将指定的消息发送到代理服务器。
|
void |
setConnectTimeoutMillis(long connectTimeoutMillis)
以毫秒为单位设置连接超时。
|
void |
write(ChannelHandlerContext ctx, java.lang.Object msg, ChannelPromise promise)
|
bind, close, deregister, disconnect, read
channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
ensureNotSharable, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerRemoved
public abstract java.lang.String protocol()
public abstract java.lang.String authScheme()
public final <T extends java.net.SocketAddress> T proxyAddress()
public final <T extends java.net.SocketAddress> T destinationAddress()
public final boolean isConnected()
true
。
public final long connectTimeoutMillis()
public final void setConnectTimeoutMillis(long connectTimeoutMillis)
public final void handlerAdded(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelHandlerAdapter
handlerAdded
,界面
ChannelHandler
handlerAdded
在课堂上
ChannelHandlerAdapter
java.lang.Exception
protected abstract void addCodec(ChannelHandlerContext ctx) throws java.lang.Exception
java.lang.Exception
protected abstract void removeEncoder(ChannelHandlerContext ctx) throws java.lang.Exception
addCodec(ChannelHandlerContext)
中添加的编码器。
java.lang.Exception
protected abstract void removeDecoder(ChannelHandlerContext ctx) throws java.lang.Exception
addCodec(ChannelHandlerContext)
中添加的解码器。
java.lang.Exception
public final void connect(ChannelHandlerContext ctx, java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, ChannelPromise promise) throws java.lang.Exception
ChannelDuplexHandler
ChannelOutboundInvoker.connect(SocketAddress, SocketAddress, ChannelPromise)
转发到ChannelPipeline
中的下一个ChannelOutboundHandler
。
子类可以重写此方法来更改行为。
connect
在界面
ChannelOutboundHandler
connect
在课堂上
ChannelDuplexHandler
ctx
- 进行连接操作的ChannelHandlerContext
remoteAddress
- 它应该连接的
SocketAddress
localAddress
- 用作连接源的
SocketAddress
promise
- 操作完成后通知ChannelPromise
java.lang.Exception
- 发生错误时抛出
public final void channelActive(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelActive()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelActive
在界面
ChannelInboundHandler
channelActive
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
protected abstract java.lang.Object newInitialMessage(ChannelHandlerContext ctx) throws java.lang.Exception
null
java.lang.Exception
protected final void sendToProxyServer(java.lang.Object msg)
handleResponse(ChannelHandlerContext, Object)
中向代理服务器发送响应。
public final void channelInactive(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelInactive()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelInactive
在界面
ChannelInboundHandler
channelInactive
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
public final void exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireExceptionCaught(Throwable)
转发至ChannelPipeline
中的下一个ChannelHandler
。
子类可以重写此方法来更改行为。
exceptionCaught
在界面
ChannelHandler
exceptionCaught
在界面
ChannelInboundHandler
exceptionCaught
在课程
ChannelInboundHandlerAdapter
java.lang.Exception
public final void channelRead(ChannelHandlerContext ctx, java.lang.Object msg) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRead(Object)
转发给ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelRead
在界面
ChannelInboundHandler
channelRead
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
protected abstract boolean handleResponse(ChannelHandlerContext ctx, java.lang.Object response) throws java.lang.Exception
true
如果到目的地的连接已经建立,
false
如果到目的地的连接尚未建立,并且代理服务器需要更多消息
java.lang.Exception
protected final java.lang.String exceptionMessage(java.lang.String msg)
public final void channelReadComplete(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelReadComplete()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelReadComplete
在界面
ChannelInboundHandler
channelReadComplete
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
public final void write(ChannelHandlerContext ctx, java.lang.Object msg, ChannelPromise promise) throws java.lang.Exception
ChannelDuplexHandler
ChannelOutboundInvoker.write(Object, ChannelPromise)
转发至ChannelPipeline
中的下一个ChannelOutboundHandler
。
子类可以重写此方法来更改行为。
write
在界面
ChannelOutboundHandler
write
在课堂上
ChannelDuplexHandler
ctx
- 为其写入操作的ChannelHandlerContext
msg
- 写信息
promise
- 在操作完成后通知ChannelPromise
java.lang.Exception
- 发生错误时抛出
public final void flush(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelDuplexHandler
ChannelHandlerContext.flush()
转发至ChannelPipeline
中的下一个ChannelOutboundHandler
。
子类可以重写此方法来更改行为。
flush
在界面
ChannelOutboundHandler
flush
在课堂上
ChannelDuplexHandler
ctx
- 进行冲洗操作的ChannelHandlerContext
java.lang.Exception
- 发生错误时抛出
Copyright © 2008–2018 The Netty Project. All rights reserved.