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.