public abstract class AbstractChannel extends DefaultAttributeMap implements Channel
Channel的实现。
| Modifier and Type | Class and Description |
|---|---|
protected class |
AbstractChannel.AbstractUnsafe
Unsafe子类必须扩展和使用的实现。
|
Channel.Unsafe| Modifier | Constructor and Description |
|---|---|
protected |
AbstractChannel(Channel parent)
创建一个新的实例。
|
protected |
AbstractChannel(Channel parent, ChannelId id)
创建一个新的实例。
|
| Modifier and Type | Method and Description |
|---|---|
ByteBufAllocator |
alloc()
返回分配的 ByteBufAllocator这将被用于分配ByteBuf秒。
|
ChannelFuture |
bind(java.net.SocketAddress localAddress)
请求绑定到给定的 SocketAddress并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
bind(java.net.SocketAddress localAddress, ChannelPromise promise)
请求绑定到给定的 SocketAddress并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
long |
bytesBeforeUnwritable()
获取可以写入多少个字节,直到
Channel.isWritable()返回
false 。
|
long |
bytesBeforeWritable()
|
ChannelFuture |
close()
请求关闭 Channel,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
close(ChannelPromise promise)
请求关闭 Channel,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
closeFuture()
返回此通道关闭时将通知的 ChannelFuture 。
|
int |
compareTo(Channel o) |
ChannelFuture |
connect(java.net.SocketAddress remoteAddress)
请求连接到给定的 SocketAddress并在操作完成后通知ChannelFuture ,这可能是因为操作成功或者由于错误。
|
ChannelFuture |
connect(java.net.SocketAddress remoteAddress, ChannelPromise promise)
请求连接到给定的 SocketAddress并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
connect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress)
请求连接到给定的 SocketAddress同时绑定到localAddress,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
connect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, ChannelPromise promise)
请求连接到给定的 SocketAddress同时绑定到localAddress,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
deregister()
请求从先前分配的 EventExecutor注销,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
deregister(ChannelPromise promise)
请求从先前分配的 EventExecutor注销,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
|
ChannelFuture |
disconnect()
请求断开与远程对等方的连接,并在操作完成后通知 ChannelFuture ,可能是因为操作成功或错误。
|
ChannelFuture |
disconnect(ChannelPromise promise)
请求从远程对等方断开连接,并在操作完成后通知 ChannelFuture ,无论是因为操作成功还是由于错误。
|
protected abstract void |
doBeginRead()
安排读取操作。
|
protected abstract void |
doBind(java.net.SocketAddress localAddress)
将 Channel绑定到SocketAddress
|
protected abstract void |
doClose()
关闭 Channel
|
protected void |
doDeregister()
|
protected abstract void |
doDisconnect()
将此 Channel从其远程对等端断开
|
protected void |
doRegister()
|
protected void |
doShutdownOutput()
当条件证明关闭通道的输出部分时调用。
|
protected abstract void |
doWrite(ChannelOutboundBuffer in)
将给定缓冲区的内容刷新到远程对等体。
|
boolean |
equals(java.lang.Object o)
当且仅当指定的对象与此通道相同(即:
this == o )时才返回
true 。
|
EventLoop |
eventLoop()
|
protected java.lang.Object |
filterOutboundMessage(java.lang.Object msg)
在将新消息添加到此 AbstractChannel的ChannelOutboundBuffer时调用 ,以便Channel实现将消息转换为另一个消息。
|
Channel |
flush()
请求通过此ChannelOutboundInvoker清除所有未决消息。
|
int |
hashCode()
返回此频道的ID。
|
ChannelId |
id()
返回此 Channel的全局唯一标识符。
|
protected void |
invalidateLocalAddress()
已过时。
没有这个用例。
|
protected void |
invalidateRemoteAddress()
已过时。
没有这个用例。
|
protected abstract boolean |
isCompatible(EventLoop loop)
如果给定的 EventLoop与此实例兼容,则返回true 。
|
boolean |
isRegistered()
|
boolean |
isWritable()
当且仅当I / O线程将立即执行请求的写入操作时才返回
true 。
|
java.net.SocketAddress |
localAddress()
返回此通道绑定的本地地址。
|
protected abstract java.net.SocketAddress |
localAddress0()
返回本地绑定的
SocketAddress 。
|
protected DefaultChannelPipeline |
newChannelPipeline()
返回一个新的 DefaultChannelPipeline实例。
|
ChannelFuture |
newFailedFuture(java.lang.Throwable cause)
创建一个新的已被标记为失败的 ChannelFuture 。
|
protected ChannelId |
newId()
返回一个新的 DefaultChannelId实例。
|
ChannelProgressivePromise |
newProgressivePromise()
|
ChannelPromise |
newPromise()
返回一个新的 ChannelPromise 。
|
ChannelFuture |
newSucceededFuture()
创建一个新的标记为已成功的 ChannelFuture 。
|
protected abstract AbstractChannel.AbstractUnsafe |
newUnsafe()
创建一个新的 AbstractChannel.AbstractUnsafe实例,该实例将用于Channel的生命周期
|
Channel |
parent()
返回此频道的父级。
|
ChannelPipeline |
pipeline()
返回分配的 ChannelPipeline 。
|
Channel |
read()
请求将 Channel中的数据读入第一个入站缓冲区,如果读取了数据,则触发ChannelInboundHandler.channelRead(ChannelHandlerContext, Object)事件,并触发channelReadComplete事件,以便处理程序决定继续读取数据。
|
java.net.SocketAddress |
remoteAddress()
返回此通道连接到的远程地址。
|
protected abstract java.net.SocketAddress |
remoteAddress0()
返回 SocketAddress其中Channel被连接到。
|
java.lang.String |
toString()
返回此频道的
String表示形式。
|
Channel.Unsafe |
unsafe()
返回提供不安全操作
的仅供内部使用的对象。
|
ChannelPromise |
voidPromise()
返回一个特殊的ChannelPromise,可用于不同的操作。
|
ChannelFuture |
write(java.lang.Object msg)
请求通过 ChannelHandlerContext通过ChannelPipeline写一条消息。
|
ChannelFuture |
write(java.lang.Object msg, ChannelPromise promise)
要求通过 ChannelHandlerContext通过ChannelPipeline写信息。
|
ChannelFuture |
writeAndFlush(java.lang.Object msg)
|
ChannelFuture |
writeAndFlush(java.lang.Object msg, ChannelPromise promise)
|
attr, hasAttrclone, finalize, getClass, notify, notifyAll, wait, wait, waitattr, hasAttrprotected AbstractChannel(Channel parent)
parent - 此频道的母公司。
null如果没有父母。
protected ChannelId newId()
DefaultChannelId实例。
子类可以重写此方法来指定自定义ChannelId s到Channel个使用的S AbstractChannel(Channel)构造。
protected DefaultChannelPipeline newChannelPipeline()
DefaultChannelPipeline实例。
public boolean isWritable()
Channel复制的描述
true 。
当此方法返回false时发出的任何写入请求false排队,直到I / O线程准备好处理排队的写入请求。
isWritable在界面
Channel
public long bytesBeforeUnwritable()
Channel
bytesBeforeUnwritable ,界面
Channel
public long bytesBeforeWritable()
Channel复制的描述
bytesBeforeWritable在界面
Channel
public ChannelPipeline pipeline()
Channel复制的描述
ChannelPipeline 。
public ByteBufAllocator alloc()
Channel复制的描述
ByteBufAllocator这将被用于分配ByteBuf秒。
public java.net.SocketAddress localAddress()
Channel
SocketAddress应该被下调为更具体的类型,例如InetSocketAddress以检索详细信息。
localAddress ,界面
Channel
null如果此通道未绑定。
@Deprecated protected void invalidateLocalAddress()
public java.net.SocketAddress remoteAddress()
Channel
SocketAddress应该被放入更具体的类型,例如InetSocketAddress以检索详细信息。
remoteAddress在界面
Channel
null如果此通道未连接。
如果此通道未连接,但它可以接收来自任意远程地址的消息(例如DatagramChannel ,请使用DefaultAddressedEnvelope.recipient()来确定收到消息的来源,因为此方法将返回null 。
@Deprecated protected void invalidateRemoteAddress()
public boolean isRegistered()
Channel复制的描述
isRegistered在界面
Channel
public ChannelFuture bind(java.net.SocketAddress localAddress)
ChannelOutboundInvoker
SocketAddress并在操作完成后通知ChannelFuture ,因为操作成功或错误。
这将导致在具有ChannelOutboundHandler.bind(ChannelHandlerContext, SocketAddress, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
bind在界面
ChannelOutboundInvoker
public ChannelFuture connect(java.net.SocketAddress remoteAddress)
ChannelOutboundInvoker复制的描述
SocketAddress并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
如果由于连接超时而导致连接失败,则ChannelFuture将失败,并显示ConnectTimeoutException 。 如果因连接拒绝而失败,将使用ConnectException 。
这将导致在具有ChannelOutboundHandler.connect(ChannelHandlerContext, SocketAddress, SocketAddress, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
connect ,界面
ChannelOutboundInvoker
public ChannelFuture connect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress)
ChannelOutboundInvoker复制的描述
SocketAddress同时绑定到localAddress,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
这将导致在具有ChannelOutboundHandler.connect(ChannelHandlerContext, SocketAddress, SocketAddress, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
connect在界面
ChannelOutboundInvoker
public ChannelFuture disconnect()
ChannelOutboundInvoker
ChannelFuture ,可能是因为操作成功或者由于错误。
这将导致在具有ChannelOutboundHandler.disconnect(ChannelHandlerContext, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
disconnect ,界面
ChannelOutboundInvoker
public ChannelFuture close()
ChannelOutboundInvoker
Channel,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
关闭后不可能再次使用它。
这将导致在具有ChannelOutboundHandler.close(ChannelHandlerContext, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
close在界面
ChannelOutboundInvoker
public ChannelFuture deregister()
ChannelOutboundInvoker复制的描述
EventExecutor,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
这将导致在具有ChannelOutboundHandler.deregister(ChannelHandlerContext, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
deregister在界面
ChannelOutboundInvoker
public Channel flush()
ChannelOutboundInvoker
flush ,界面
Channel
flush在界面
ChannelOutboundInvoker
public ChannelFuture bind(java.net.SocketAddress localAddress, ChannelPromise promise)
ChannelOutboundInvoker
SocketAddress并在操作完成后通知ChannelFuture ,这可能是因为操作成功或者由于错误。
给定的ChannelPromise将被通知。
这将导致在具有ChannelOutboundHandler.bind(ChannelHandlerContext, SocketAddress, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
bind在界面
ChannelOutboundInvoker
public ChannelFuture connect(java.net.SocketAddress remoteAddress, ChannelPromise promise)
ChannelOutboundInvoker
SocketAddress并在操作完成后通知ChannelFuture ,这可能是因为操作成功或错误。
给定的ChannelFuture将被通知。
如果由于连接超时而导致连接失败,则ChannelFuture将失败,并显示ConnectTimeoutException 。 如果因连接拒绝而失败,将使用ConnectException 。
这将导致在具有ChannelOutboundHandler.connect(ChannelHandlerContext, SocketAddress, SocketAddress, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
connect在界面
ChannelOutboundInvoker
public ChannelFuture connect(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, ChannelPromise promise)
ChannelOutboundInvoker
SocketAddress同时绑定到localAddress,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
给定的ChannelPromise将被通知并且返回。
这将导致在具有ChannelOutboundHandler.connect(ChannelHandlerContext, SocketAddress, SocketAddress, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
connect在界面
ChannelOutboundInvoker
public ChannelFuture disconnect(ChannelPromise promise)
ChannelOutboundInvoker复制的描述
ChannelFuture ,无论是因为操作成功还是由于错误。
给定的ChannelPromise将被通知。
这将导致在具有ChannelOutboundHandler.disconnect(ChannelHandlerContext, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
disconnect在界面
ChannelOutboundInvoker
public ChannelFuture close(ChannelPromise promise)
ChannelOutboundInvoker复制的描述
Channel,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
关闭后不可能再次使用它。
给定的ChannelPromise将被通知。
这将导致在具有ChannelOutboundHandler.close(ChannelHandlerContext, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
close在界面
ChannelOutboundInvoker
public ChannelFuture deregister(ChannelPromise promise)
ChannelOutboundInvoker复制的描述
EventExecutor,并在操作完成后通知ChannelFuture ,无论是因为操作成功还是由于错误。
给定的ChannelPromise将被通知。
这将导致在具有ChannelOutboundHandler.deregister(ChannelHandlerContext, ChannelPromise)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
deregister ,界面
ChannelOutboundInvoker
public Channel read()
ChannelOutboundInvoker复制的描述
Channel读入第一个入站缓冲区,如果读取数据,则触发ChannelInboundHandler.channelRead(ChannelHandlerContext, Object)事件,并触发channelReadComplete事件,以便处理程序可以决定继续读取数据。
如果已经有待处理的读取操作,则此方法不执行任何操作。
这将导致在具有ChannelOutboundHandler.read(ChannelHandlerContext)方法称为下一个的ChannelOutboundHandler包含在ChannelPipeline的的Channel 。
read ,界面
Channel
read ,界面
ChannelOutboundInvoker
public ChannelFuture write(java.lang.Object msg)
ChannelOutboundInvoker
ChannelHandlerContext通过ChannelPipeline写一条消息。
此方法不会请求实际刷新,所以一旦您要请求将所有待处理数据清除到实际传输,请务必调用ChannelOutboundInvoker.flush() 。
write在界面
ChannelOutboundInvoker
public ChannelFuture write(java.lang.Object msg, ChannelPromise promise)
ChannelOutboundInvoker复制的描述
ChannelHandlerContext通过ChannelPipeline写一条消息。
此方法不会请求实际刷新,因此,一旦要请求将所有待处理数据清除到实际传输,请务必调用ChannelOutboundInvoker.flush() 。
write在界面
ChannelOutboundInvoker
public ChannelFuture writeAndFlush(java.lang.Object msg)
ChannelOutboundInvoker复制的描述
writeAndFlush ,界面
ChannelOutboundInvoker
public ChannelFuture writeAndFlush(java.lang.Object msg, ChannelPromise promise)
ChannelOutboundInvoker复制的描述
writeAndFlush接口
ChannelOutboundInvoker
public ChannelPromise newPromise()
ChannelOutboundInvoker复制的描述
ChannelPromise 。
newPromise在界面
ChannelOutboundInvoker
public ChannelProgressivePromise newProgressivePromise()
ChannelOutboundInvoker
newProgressivePromise接口
ChannelOutboundInvoker
public ChannelFuture newSucceededFuture()
ChannelOutboundInvoker复制的描述
ChannelFuture 。
所以Future.isSuccess()将返回true 。
所有FutureListener添加到它将直接通知。
同样,每个阻塞方法的调用都会返回而不会阻塞。
newSucceededFuture在界面
ChannelOutboundInvoker
public ChannelFuture newFailedFuture(java.lang.Throwable cause)
ChannelOutboundInvoker复制的描述
ChannelFuture 。
所以Future.isSuccess()将返回false 。
所有FutureListener添加到它将直接通知。
同样,每个阻塞方法的调用都会返回而不会阻塞。
newFailedFuture ,界面
ChannelOutboundInvoker
public ChannelFuture closeFuture()
Channel复制的描述
ChannelFuture 。
此方法始终返回相同的未来实例。
closeFuture ,界面
Channel
public Channel.Unsafe unsafe()
Channel复制的描述
protected abstract AbstractChannel.AbstractUnsafe newUnsafe()
AbstractChannel.AbstractUnsafe实例,该实例将用于Channel的生命周期
public final int hashCode()
hashCode在课堂
java.lang.Object
public final boolean equals(java.lang.Object o)
this == o )时返回
true 。
equals在课程
java.lang.Object
public final int compareTo(Channel o)
compareTo ,界面
java.lang.Comparable<Channel>
public java.lang.String toString()
String表示形式。
返回的字符串包含ID , local address和remote address这个渠道更容易识别。
toString在课程
java.lang.Object
public final ChannelPromise voidPromise()
ChannelOutboundInvoker
它仅支持将其用于ChannelOutboundInvoker.write(Object, ChannelPromise) 。
请注意,返回的ChannelPromise不支持大多数操作,只应在您希望为每个写入操作保存对象分配时使用。 您将无法检测操作是否完成,仅当它失败时才会检测操作是否完成,因为在这种情况下实现将调用ChannelPipeline.fireExceptionCaught(Throwable) 。
voidPromise在界面
ChannelOutboundInvoker
protected abstract java.net.SocketAddress localAddress0()
SocketAddress 。
protected abstract java.net.SocketAddress remoteAddress0()
SocketAddress其中Channel被连接到。
protected void doRegister()
throws java.lang.Exception
java.lang.Exception
protected abstract void doBind(java.net.SocketAddress localAddress)
throws java.lang.Exception
Channel绑定到SocketAddress
java.lang.Exception
protected abstract void doDisconnect()
throws java.lang.Exception
Channel从其远程对等端断开
java.lang.Exception
protected abstract void doClose()
throws java.lang.Exception
Channel
java.lang.Exception
@UnstableApi
protected void doShutdownOutput()
throws java.lang.Exception
java.lang.Exception
protected void doDeregister()
throws java.lang.Exception
java.lang.Exception
protected abstract void doBeginRead()
throws java.lang.Exception
java.lang.Exception
protected abstract void doWrite(ChannelOutboundBuffer in) throws java.lang.Exception
java.lang.Exception
protected java.lang.Object filterOutboundMessage(java.lang.Object msg)
throws java.lang.Exception
AbstractChannel的ChannelOutboundBuffer中时调用 ,以便Channel实现将消息转换为另一个消息。
(例如堆缓冲区 - >直接缓冲区)
java.lang.Exception
Copyright © 2008–2018 The Netty Project. All rights reserved.