The channelFactory may create a NioSocketChannel, but here it uses Utils.maybeGetTcpUserTimeoutOption() to determine whether to set the TCP_USER_TIMEOUT. It may lead to setting TCP_USER_TIMEOUT when using NioSocketChannel, but in fact, only EpollSocketChannel supports setting this property. I feel that the judgment here is not strict enough. Should we consider optimization?
