public class ServerRSocketMessageHandler
extends org.springframework.messaging.rsocket.annotation.support.RSocketMessageHandler
implements org.springframework.context.ApplicationEventPublisherAware
IntegrationRSocketMessageHandler extension for RSocket service side.
In a plain Spring Integration application instances of this class are created by the
ServerRSocketConnector internally and a new RSocket server is started over there.
When an existing RSocket server is in use, an instance of this class has to be
provided as a RSocketMessageHandler.responder() into that server and a ServerRSocketConnector
should accept the same instance as a delegate.
With a messageMappingCompatible option this class also handles
MessageMapping methods,
covering both Spring Integration and standard
RSocketMessageHandler
functionality.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
org.springframework.integration.rsocket.IntegrationRSocketMessageHandler.MessageHandlerMethodArgumentResolver |
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
messageMappingCompatible |
| Constructor and Description |
|---|
ServerRSocketMessageHandler()
Create an service side RSocket message handler instance for delegating
to
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections. |
ServerRSocketMessageHandler(boolean messageMappingCompatible)
Create an service side RSocket message handler instance for delegating
to
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections. |
| Modifier and Type | Method and Description |
|---|---|
void |
addEndpoint(IntegrationRSocketEndpoint endpoint) |
boolean |
detectEndpoints() |
org.springframework.messaging.rsocket.RSocketRequester |
getClientRSocketRequester(java.lang.Object key)
Obtain a connected
RSocketRequester mapped by provided key or null. |
java.util.Map<java.lang.Object,org.springframework.messaging.rsocket.RSocketRequester> |
getClientRSocketRequesters()
Get connected
RSocketRequesters mapped by the keys from the connect messages. |
protected java.util.List<? extends org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver> |
initArgumentResolvers() |
void |
setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher) |
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
BiFunction to extract a key for mapping connected RSocketRequesters. |
afterPropertiesSet, clientResponder, extendMapping, getCondition, getDefaultDataMimeType, getDefaultMetadataMimeType, getEncoders, getMetadataExtractor, getRSocketStrategies, handleNoMatch, initReturnValueHandlers, responder, responder, setDecoders, setDefaultDataMimeType, setDefaultMetadataMimeType, setEncoders, setMetadataExtractor, setReactiveAdapterRegistry, setRouteMatcher, setRSocketStrategiescreateExceptionMethodResolverFor, getConversionService, getDecoders, getDestination, getDirectLookupMappings, getMappingComparator, getMappingForMethod, getMatchingMapping, getRouteMatcher, getValidator, handleMatch, obtainRouteMatcher, processDestinations, setConversionService, setEmbeddedValueResolver, setValidatordetectHandlerMethods, getApplicationContext, getArgumentResolverConfigurer, getArgumentResolvers, getBeanName, getDestinationLookup, getHandlerMethods, getHandlerPredicate, getReactiveAdapterRegistry, getReturnValueHandlerConfigurer, handleMessage, registerExceptionHandlerAdvice, registerHandlerMethod, setApplicationContext, setArgumentResolverConfigurer, setBeanName, setHandlerPredicate, setHandlers, setReturnValueHandlerConfigurerpublic ServerRSocketMessageHandler()
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections.public ServerRSocketMessageHandler(boolean messageMappingCompatible)
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections.
When messageMappingCompatible == true, this class also handles
MessageMapping methods
as it is done by the standard
RSocketMessageHandler.messageMappingCompatible - whether handle also
MessageMapping.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)
BiFunction to extract a key for mapping connected RSocketRequesters.
Defaults to the destination a client is connected.clientRSocketKeyStrategy - the BiFunction to use.public java.util.Map<java.lang.Object,org.springframework.messaging.rsocket.RSocketRequester> getClientRSocketRequesters()
RSocketRequesters mapped by the keys from the connect messages.RSocketRequesters.setClientRSocketKeyStrategy(java.util.function.BiFunction<java.util.Map<java.lang.String, java.lang.Object>, org.springframework.core.io.buffer.DataBuffer, java.lang.Object>)@Nullable public org.springframework.messaging.rsocket.RSocketRequester getClientRSocketRequester(java.lang.Object key)
RSocketRequester mapped by provided key or null.key - the key for mapped RSocketRequester if any.RSocketRequester or null.public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAwarepublic boolean detectEndpoints()
public void addEndpoint(IntegrationRSocketEndpoint endpoint)
protected java.util.List<? extends org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver> initArgumentResolvers()
initArgumentResolvers in class org.springframework.messaging.handler.annotation.reactive.MessageMappingMessageHandler