public class TcpNioServerConnectionFactory extends AbstractServerConnectionFactory
TcpNioConnection
s using
a ServerSocketChannel
. Must have a TcpListener
registered.DEFAULT_REPLY_TIMEOUT, lifecycleMonitor
EXPRESSION_PARSER, logger
Constructor and Description |
---|
TcpNioServerConnectionFactory(int port)
Listens for incoming connections on the port.
|
Modifier and Type | Method and Description |
---|---|
protected void |
doAccept(java.nio.channels.Selector selector,
java.nio.channels.ServerSocketChannel server,
long now) |
java.lang.String |
getComponentType()
Subclasses may implement this method to provide component type information.
|
protected java.util.Map<java.nio.channels.SocketChannel,TcpNioConnection> |
getConnections() |
int |
getPort()
Return the port this server is listening on.
|
protected java.nio.channels.ServerSocketChannel |
getServerChannel() |
java.net.SocketAddress |
getServerSocketAddress()
Return the
SocketAddress that the underlying ServerSocket
is bound to. |
protected boolean |
isUsingDirectBuffers() |
void |
run()
If no listener registers, exits.
|
void |
setTcpNioConnectionSupport(TcpNioConnectionSupport tcpNioSupport) |
void |
setUsingDirectBuffers(boolean usingDirectBuffers) |
void |
stop()
Stops the server.
|
afterShutdown, beforeShutdown, getBacklog, getConnection, getLocalAddress, initializeConnection, isListening, isLongLived, isShuttingDown, postProcessServerSocket, publishServerExceptionEvent, publishServerListeningEvent, setBacklog, setListening, setLocalAddress, start
addConnection, checkActive, closeConnection, delayRead, getApplicationEventPublisher, getDelayedReads, getDeserializer, getHost, getListener, getMapper, getOpenConnectionIds, getPhase, getReadDelay, getSender, getSerializer, getSoLinger, getSoReceiveBufferSize, getSoSendBufferSize, getSoTimeout, getSoTrafficClass, getSslHandshakeTimeout, getTaskExecutor, getTcpSocketSupport, harvestClosedConnections, isActive, isAutoStartup, isLookupHost, isRunning, isSingleUse, isSoKeepAlive, isSoTcpNoDelay, onInit, processNioSelections, registerListener, registerSender, setActive, setApplicationEventPublisher, setDeserializer, setInterceptorFactoryChain, setLookupHost, setMapper, setNioHarvestInterval, setReadDelay, setSerializer, setSingleUse, setSocketAttributes, setSoKeepAlive, setSoLinger, setSoReceiveBufferSize, setSoSendBufferSize, setSoTcpNoDelay, setSoTimeout, setSoTrafficClass, setSslHandshakeTimeout, setTaskExecutor, setTcpSocketSupport, stop, toString, wrapConnection
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler
public TcpNioServerConnectionFactory(int port)
port
- The port.public java.lang.String getComponentType()
IntegrationObjectSupport
getComponentType
in interface NamedComponent
getComponentType
in class IntegrationObjectSupport
public int getPort()
TcpServerConnectionFactory
getPort
in interface TcpServerConnectionFactory
getPort
in class AbstractConnectionFactory
public java.net.SocketAddress getServerSocketAddress()
TcpServerConnectionFactory
SocketAddress
that the underlying ServerSocket
is bound to.getServerSocketAddress
in interface TcpServerConnectionFactory
getServerSocketAddress
in class AbstractServerConnectionFactory
public void run()
AbstractServerConnectionFactory.initializeConnection(TcpConnectionSupport, Socket)
and executes the
connection Runnable.run()
using the task executor.
I/O errors on the server socket/channel are logged and the factory is stopped.protected void doAccept(java.nio.channels.Selector selector, java.nio.channels.ServerSocketChannel server, long now) throws java.io.IOException
doAccept
in class AbstractConnectionFactory
selector
- The selector.server
- The server socket channel.now
- The current time.java.io.IOException
- Any IOException.public void stop()
AbstractConnectionFactory
stop
in interface org.springframework.context.Lifecycle
stop
in class AbstractConnectionFactory
public void setUsingDirectBuffers(boolean usingDirectBuffers)
public void setTcpNioConnectionSupport(TcpNioConnectionSupport tcpNioSupport)
protected java.nio.channels.ServerSocketChannel getServerChannel()
protected boolean isUsingDirectBuffers()
protected java.util.Map<java.nio.channels.SocketChannel,TcpNioConnection> getConnections()