Class TcpNioServerConnectionFactory
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory
org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory
org.springframework.integration.ip.tcp.connection.TcpNioServerConnectionFactory
- All Implemented Interfaces:
- Runnable,- Aware,- BeanFactoryAware,- BeanNameAware,- InitializingBean,- ApplicationContextAware,- ApplicationEventPublisherAware,- Lifecycle,- ComponentSourceAware,- ExpressionCapable,- OrderlyShutdownCapable,- ConnectionFactory,- TcpServerConnectionFactory,- NamedComponent,- ManageableLifecycle,- SchedulingAwareRunnable
/**
 Implements a server connection factory that produces 
TcpNioConnections using
 a ServerSocketChannel. Must have a TcpListener registered.- Since:
- 2.0
- Author:
- Gary Russell, Artem Bilan, Ngoc Nhan
- 
Field SummaryFields inherited from class org.springframework.integration.ip.tcp.connection.AbstractConnectionFactoryconnections, connectionsMonitor, DEFAULT_REPLY_TIMEOUT, lifecycleMonitorFields inherited from class org.springframework.integration.context.IntegrationObjectSupportEXPRESSION_PARSER, logger
- 
Constructor SummaryConstructorsConstructorDescriptionTcpNioServerConnectionFactory(int port) Listens for incoming connections on the port.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voiddoAccept(Selector selectorForNewSocket, ServerSocketChannel server, long now) Subclasses may implement this method to provide component type information.protected Map<SocketChannel,TcpNioConnection> intgetPort()Return the port this server is listening on.protected ServerSocketChannelReturn theSocketAddressthat the underlyingServerSocketis bound to.protected booleanvoidrun()If no listener registers, exits.voidsetMultiAccept(boolean multiAccept) Set to false to only accept one connection per iteration over the selector keys.voidsetTcpNioConnectionSupport(TcpNioConnectionSupport tcpNioSupport) Set theTcpNioConnectionSupportto use.voidsetUsingDirectBuffers(boolean usingDirectBuffers) Set to true to use direct buffers.voidstop()Stops the server.Methods inherited from class org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactoryafterShutdown, beforeShutdown, getBacklog, getConnection, getLocalAddress, initializeConnection, isListening, isLongLived, isShuttingDown, postProcessServerSocket, publishServerExceptionEvent, publishServerListeningEvent, setBacklog, setListening, setLocalAddress, startMethods inherited from class org.springframework.integration.ip.tcp.connection.AbstractConnectionFactoryaddConnection, checkActive, closeConnection, delayRead, getApplicationEventPublisher, getDelayedReads, getDeserializer, getHost, getLifecycleMonitor, getListener, getMapper, getOpenConnectionIds, getReadDelay, getSender, getSenders, getSerializer, getSoLinger, getSoReceiveBufferSize, getSoSendBufferSize, getSoTimeout, getSoTrafficClass, getSslHandshakeTimeout, getTaskExecutor, getTcpSocketSupport, harvestClosedConnections, isActive, isLookupHost, isRunning, isSingleUse, isSoKeepAlive, isSoTcpNoDelay, onInit, processNioSelections, registerListener, registerSender, setActive, setApplicationEventPublisher, setDeserializer, setHost, setInterceptorFactoryChain, setLeaveOpen, setLookupHost, setMapper, setNioHarvestInterval, setPort, setReadDelay, setSerializer, setSingleUse, setSocketAttributes, setSoKeepAlive, setSoLinger, setSoReceiveBufferSize, setSoSendBufferSize, setSoTcpNoDelay, setSoTimeout, setSoTrafficClass, setSslHandshakeTimeout, setTaskExecutor, setTcpSocketSupport, toString, unregisterSender, wrapConnectionMethods inherited from class org.springframework.integration.context.IntegrationObjectSupportafterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskSchedulerMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.scheduling.SchedulingAwareRunnablegetQualifier
- 
Constructor Details- 
TcpNioServerConnectionFactorypublic TcpNioServerConnectionFactory(int port) Listens for incoming connections on the port.- Parameters:
- port- The port.
 
 
- 
- 
Method Details- 
setMultiAcceptpublic void setMultiAccept(boolean multiAccept) Set to false to only accept one connection per iteration over the selector keys. This might be necessary to avoid accepts overwhelming reads of existing sockets. By default when theOP_ACCEPToperation is ready, we will keep accepting connections in a loop until no more arrive.- Parameters:
- multiAccept- false to accept connections one-at-a-time.
- Since:
- 5.1.4
 
- 
getComponentTypeDescription copied from class:IntegrationObjectSupportSubclasses may implement this method to provide component type information.- Specified by:
- getComponentTypein interface- NamedComponent
- Overrides:
- getComponentTypein class- IntegrationObjectSupport
 
- 
getPortpublic int getPort()Description copied from interface:TcpServerConnectionFactoryReturn the port this server is listening on. If the factory is configured to listen on a random port (0), this will return the actual port after the factory is started. It may return the previous value if the factory is stopped.- Specified by:
- getPortin interface- TcpServerConnectionFactory
- Overrides:
- getPortin class- AbstractConnectionFactory
- Returns:
- the port
 
- 
getServerSocketAddressDescription copied from interface:TcpServerConnectionFactoryReturn theSocketAddressthat the underlyingServerSocketis bound to.- Specified by:
- getServerSocketAddressin interface- TcpServerConnectionFactory
- Overrides:
- getServerSocketAddressin class- AbstractServerConnectionFactory
- Returns:
- the socket address.
 
- 
runpublic void run()If no listener registers, exits. Accepts incoming connections and creates TcpConnections for each new connection. Invokes {AbstractServerConnectionFactory.initializeConnection(TcpConnectionSupport, Socket)and executes the connectionRunnable.run()using the task executor. I/O errors on the server socket/channel are logged and the factory is stopped.
- 
doAccept- Overrides:
- doAcceptin class- AbstractConnectionFactory
- Parameters:
- selectorForNewSocket- The selector.
- server- The server socket channel.
- now- The current time.
 
- 
stoppublic void stop()Description copied from class:AbstractConnectionFactoryStops the server.- Specified by:
- stopin interface- Lifecycle
- Specified by:
- stopin interface- ManageableLifecycle
- Overrides:
- stopin class- AbstractConnectionFactory
 
- 
setUsingDirectBufferspublic void setUsingDirectBuffers(boolean usingDirectBuffers) Set to true to use direct buffers.- Parameters:
- usingDirectBuffers- true for direct.
 
- 
setTcpNioConnectionSupportSet theTcpNioConnectionSupportto use.- Parameters:
- tcpNioSupport- the- TcpNioConnectionSupport.
 
- 
getServerChannel- Returns:
- the serverChannel
 
- 
isUsingDirectBuffersprotected boolean isUsingDirectBuffers()- Returns:
- the usingDirectBuffers
 
- 
getConnections- Returns:
- the connections
 
 
-