Class ServerRSocketConnector
java.lang.Object
org.springframework.integration.rsocket.AbstractRSocketConnector
org.springframework.integration.rsocket.ServerRSocketConnector
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.beans.factory.SmartInitializingSingleton,org.springframework.context.ApplicationContextAware,org.springframework.context.ApplicationEventPublisherAware,org.springframework.context.Lifecycle,org.springframework.context.Phased,org.springframework.context.SmartLifecycle
public class ServerRSocketConnector extends AbstractRSocketConnector implements org.springframework.context.ApplicationEventPublisherAware
A server
AbstractRSocketConnector extension to accept and manage client RSocket connections.- Since:
- 5.2
- See Also:
RSocketConnector
-
Field Summary
Fields inherited from class org.springframework.integration.rsocket.AbstractRSocketConnector
rSocketMessageHandler -
Constructor Summary
Constructors Constructor Description ServerRSocketConnector(io.rsocket.transport.ServerTransport<io.rsocket.transport.netty.server.CloseableChannel> serverTransport)Instantiate a server connector based on the providedServerTransport.ServerRSocketConnector(java.lang.String bindAddress, int port)Instantiate a server connector based on theTcpServerTransport.ServerRSocketConnector(ServerRSocketMessageHandler serverRSocketMessageHandler)Instantiate a server connector based on a providedServerRSocketMessageHandlerwith an assumption that RSocket server is created externally as well.ServerRSocketConnector(reactor.netty.http.server.HttpServer server)Instantiate a server connector based on theWebsocketServerTransport. -
Method Summary
Modifier and Type Method Description voidafterPropertiesSet()voidafterSingletonsInstantiated()voiddestroy()protected voiddoStart()reactor.core.publisher.Mono<java.lang.Integer>getBoundPort()Return the port this internal server is bound or emptyMono.org.springframework.messaging.rsocket.RSocketRequestergetClientRSocketRequester(java.lang.Object key)Return connectedRSocketRequestermapped by key or null.java.util.Map<java.lang.Object,org.springframework.messaging.rsocket.RSocketRequester>getClientRSocketRequesters()Return connectedRSocketRequesters mapped by keys.voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext)voidsetApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)voidsetClientRSocketKeyStrategy(java.util.function.BiFunction<java.util.Map<java.lang.String,java.lang.Object>,org.springframework.core.io.buffer.DataBuffer,java.lang.Object> clientRSocketKeyStrategy)Configure a strategy to determine a key for the clientRSocketRequesterconnected.voidsetDataMimeType(org.springframework.util.MimeType dataMimeType)Configure aMimeTypefor data exchanging.voidsetMetadataMimeType(org.springframework.util.MimeType metadataMimeType)Configure aMimeTypefor metadata exchanging.voidsetRSocketStrategies(org.springframework.messaging.rsocket.RSocketStrategies rsocketStrategies)Configure aRSocketStrategiesfor data encoding/decoding.voidsetServerConfigurer(java.util.function.Consumer<io.rsocket.core.RSocketServer> serverConfigurer)Provide aConsumerto configure theRSocketServer.Methods inherited from class org.springframework.integration.rsocket.AbstractRSocketConnector
addEndpoint, getDataMimeType, getMetadataMimeType, getRSocketStrategies, isAutoStartup, isRunning, setAutoStartup, setEndpoints, start, stop
-
Constructor Details
-
ServerRSocketConnector
Instantiate a server connector based on a providedServerRSocketMessageHandlerwith an assumption that RSocket server is created externally as well. All other options are ignored in favor of providedServerRSocketMessageHandlerand its external RSocket server configuration.- Parameters:
serverRSocketMessageHandler- theServerRSocketMessageHandlerto rely on.- Since:
- 5.2.1
-
ServerRSocketConnector
public ServerRSocketConnector(java.lang.String bindAddress, int port)Instantiate a server connector based on theTcpServerTransport.- Parameters:
bindAddress- the local address to bind TCP server onto.port- the local TCP port to bind.- See Also:
ServerRSocketConnector(ServerTransport)
-
ServerRSocketConnector
public ServerRSocketConnector(reactor.netty.http.server.HttpServer server)Instantiate a server connector based on theWebsocketServerTransport.- Parameters:
server- theHttpServerto use.- See Also:
ServerRSocketConnector(ServerTransport)
-
ServerRSocketConnector
public ServerRSocketConnector(io.rsocket.transport.ServerTransport<io.rsocket.transport.netty.server.CloseableChannel> serverTransport)Instantiate a server connector based on the providedServerTransport.- Parameters:
serverTransport- theServerTransportto make server based on.
-
-
Method Details
-
setServerConfigurer
public void setServerConfigurer(java.util.function.Consumer<io.rsocket.core.RSocketServer> serverConfigurer)Provide aConsumerto configure theRSocketServer.- Parameters:
serverConfigurer- theConsumerto configure theRSocketServer.- Since:
- 5.2.6
-
setClientRSocketKeyStrategy
public void setClientRSocketKeyStrategy(java.util.function.BiFunction<java.util.Map<java.lang.String,java.lang.Object>,org.springframework.core.io.buffer.DataBuffer,java.lang.Object> clientRSocketKeyStrategy)Configure a strategy to determine a key for the clientRSocketRequesterconnected. Defaults to thedestinationto which a client is connected.- Parameters:
clientRSocketKeyStrategy- theBiFunctionto determine a key for clientRSocketRequesters.
-
setDataMimeType
public void setDataMimeType(@Nullable org.springframework.util.MimeType dataMimeType)Description copied from class:AbstractRSocketConnectorConfigure aMimeTypefor data exchanging.- Overrides:
setDataMimeTypein classAbstractRSocketConnector- Parameters:
dataMimeType- theMimeTypeto use.
-
setMetadataMimeType
public void setMetadataMimeType(org.springframework.util.MimeType metadataMimeType)Description copied from class:AbstractRSocketConnectorConfigure aMimeTypefor metadata exchanging. Default to"message/x.rsocket.composite-metadata.v0".- Overrides:
setMetadataMimeTypein classAbstractRSocketConnector- Parameters:
metadataMimeType- theMimeTypeto use.
-
setRSocketStrategies
public void setRSocketStrategies(org.springframework.messaging.rsocket.RSocketStrategies rsocketStrategies)Description copied from class:AbstractRSocketConnectorConfigure aRSocketStrategiesfor data encoding/decoding.- Overrides:
setRSocketStrategiesin classAbstractRSocketConnector- Parameters:
rsocketStrategies- theRSocketStrategiesto use.
-
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException- Specified by:
setApplicationContextin interfaceorg.springframework.context.ApplicationContextAware- Overrides:
setApplicationContextin classAbstractRSocketConnector- Throws:
org.springframework.beans.BeansException
-
setApplicationEventPublisher
public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)- Specified by:
setApplicationEventPublisherin interfaceorg.springframework.context.ApplicationEventPublisherAware
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Overrides:
afterPropertiesSetin classAbstractRSocketConnector
-
getClientRSocketRequesters
public java.util.Map<java.lang.Object,org.springframework.messaging.rsocket.RSocketRequester> getClientRSocketRequesters()Return connectedRSocketRequesters mapped by keys.- Returns:
- connected
RSocketRequesters mapped by keys. - See Also:
ServerRSocketMessageHandler.getClientRSocketRequesters()
-
getClientRSocketRequester
@Nullable public org.springframework.messaging.rsocket.RSocketRequester getClientRSocketRequester(java.lang.Object key)Return connectedRSocketRequestermapped by key or null.- Parameters:
key- the mapping key.- Returns:
- the
RSocketRequesteror null. - See Also:
ServerRSocketMessageHandler.getClientRSocketRequester(Object)
-
getBoundPort
public reactor.core.publisher.Mono<java.lang.Integer> getBoundPort()Return the port this internal server is bound or emptyMono.- Returns:
- the port this internal server is bound or empty
Monoif an external server is used.
-
doStart
protected void doStart()- Specified by:
doStartin classAbstractRSocketConnector
-
destroy
public void destroy()- Specified by:
destroyin interfaceorg.springframework.beans.factory.DisposableBean
-
afterSingletonsInstantiated
public void afterSingletonsInstantiated()- Specified by:
afterSingletonsInstantiatedin interfaceorg.springframework.beans.factory.SmartInitializingSingleton- Overrides:
afterSingletonsInstantiatedin classAbstractRSocketConnector
-