public interface ChannelConfig
Channel的配置属性。
请下载到更具体的配置类型,例如SocketChannelConfig或使用setOptions(Map)来设置传输特定的属性:
Channel ch = ...;
SocketChannelConfig cfg = (SocketChannelConfig) ch.getConfig();
cfg.setTcpNoDelay(false);
Channel而不下推相关的ChannelConfig 。
要更新选项图,请致电setOptions(Map) 。
所有ChannelConfig有以下选择:
ChannelOption.CONNECT_TIMEOUT_MILLIS setConnectTimeoutMillis(int) ChannelOption.WRITE_SPIN_COUNT setWriteSpinCount(int) ChannelOption.WRITE_BUFFER_WATER_MARK setWriteBufferWaterMark(WriteBufferWaterMark) ChannelOption.ALLOCATOR setAllocator(ByteBufAllocator) ChannelOption.AUTO_READ setAutoRead(boolean)
更多选项可在ChannelConfig的子类型中使用 。 例如,您可以配置特定于TCP / IP套接字的参数,如SocketChannelConfig中所述 。
java.util.Map<ChannelOption<?>,java.lang.Object> getOptions()
ChannelOption 's。
boolean setOptions(java.util.Map<ChannelOption<?>,?> options)
Map设置配置属性。
<T> T getOption(ChannelOption<T> option)
ChannelOption的值
<T> boolean setOption(ChannelOption<T> option, T value)
public boolean setOption(ChannelOption<T> option, T value) {
if (super.setOption(option, value)) {
return true;
}
if (option.equals(additionalOption)) {
....
return true;
}
return false;
}
true当且仅当属性已设置
int getConnectTimeoutMillis()
Channel不支持连接操作,则完全不使用此属性,因此将被忽略。
0如果禁用。
ChannelConfig setConnectTimeoutMillis(int connectTimeoutMillis)
Channel不支持连接操作,则完全不使用此属性,因此将被忽略。
connectTimeoutMillis - 以毫秒为单位的连接超时。
0禁用。
@Deprecated int getMaxMessagesPerRead()
MaxMessagesRecvByteBufAllocator
返回每个读取循环要读取的最大消息数。 channelRead()事件。 如果此值大于1,则事件循环可能会尝试多次读取以获取多条消息。
@Deprecated ChannelConfig setMaxMessagesPerRead(int maxMessagesPerRead)
int getWriteSpinCount()
WritableByteChannel.write(ByteBuffer)返回非零值。
它类似于在并发编程中使用自旋锁。
它可以提高内存利用率并根据运行JVM的平台来编写吞吐量。
默认值是16 。
ChannelConfig setWriteSpinCount(int writeSpinCount)
WritableByteChannel.write(ByteBuffer)返回非零值。
它类似于在并发编程中使用自旋锁。
它可以提高内存利用率并根据运行JVM的平台来编写吞吐量。
默认值是16 。
java.lang.IllegalArgumentException - 如果指定的值是
0或小于
0
ByteBufAllocator getAllocator()
ByteBufAllocator ,用于通道分配缓冲区。
ChannelConfig setAllocator(ByteBufAllocator allocator)
ByteBufAllocator 。
<T extends RecvByteBufAllocator> T getRecvByteBufAllocator()
RecvByteBufAllocator ,用于通道分配接收缓冲区。
ChannelConfig setRecvByteBufAllocator(RecvByteBufAllocator allocator)
RecvByteBufAllocator 。
boolean isAutoRead()
ChannelHandlerContext.read()时才返回true ,以便用户应用程序根本不需要调用它。
默认值是true 。
ChannelConfig setAutoRead(boolean autoRead)
ChannelHandlerContext.read(),以便用户应用程序根本不需要调用它。
默认值是true 。
@Deprecated boolean isAutoClose()
@Deprecated ChannelConfig setAutoClose(boolean autoClose)
int getWriteBufferHighWaterMark()
Channel.isWritable()将开始返回false 。
ChannelConfig setWriteBufferHighWaterMark(int writeBufferHighWaterMark)
设置写入缓冲区的高位标记。 如果写入缓冲区中排队的字节数超过此值,则Channel.isWritable()将开始返回false 。
int getWriteBufferLowWaterMark()
Channel.isWritable()将再次开始返回true 。
ChannelConfig setWriteBufferLowWaterMark(int writeBufferLowWaterMark)
设置写入缓冲区的低水位标志。 一旦写入缓冲器中排队的字节数超过了high water mark ,然后下降到此值以下, Channel.isWritable()将再次开始返回true 。
MessageSizeEstimator getMessageSizeEstimator()
MessageSizeEstimator ,用于通道检测消息的大小。
ChannelConfig setMessageSizeEstimator(MessageSizeEstimator estimator)
MessageSizeEstimator以检测消息的大小。
WriteBufferWaterMark getWriteBufferWaterMark()
WriteBufferWaterMark 。
ChannelConfig setWriteBufferWaterMark(WriteBufferWaterMark writeBufferWaterMark)
WriteBufferWaterMark ,用于设置写入缓冲区的高位和低位水印。
Copyright © 2008–2018 The Netty Project. All rights reserved.