Package org.springframework.http.codec
Class ServerSentEventHttpMessageReader
- java.lang.Object
- org.springframework.http.codec.ServerSentEventHttpMessageReader
- All Implemented Interfaces:
HttpMessageReader<Object>
public class ServerSentEventHttpMessageReader extends Object implements HttpMessageReader<Object>
Reader that supports a stream ofServerSentEventsand also plainObjectswhich is the same as anServerSentEventwith data only.- Since:
- 5.0
- Author:
- Sebastien Deleuze, Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description ServerSentEventHttpMessageReader()Constructor without aDecoder.ServerSentEventHttpMessageReader(Decoder<?> decoder)Constructor with JSONDecoderfor decoding to Objects.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanRead(ResolvableType elementType, MediaType mediaType)Whether the given object type is supported by this reader.Decoder<?>getDecoder()Return the configuredDecoder.intgetMaxInMemorySize()Return theconfiguredbyte count limit.List<MediaType>getReadableMediaTypes()Return theMediaType's that this reader supports.reactor.core.publisher.Flux<Object>read(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)Read from the input message and encode to a stream of objects.reactor.core.publisher.Mono<Object>readMono(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)Read from the input message and encode to a single object.voidsetMaxInMemorySize(int byteCount)Configure a limit on the maximum number of bytes per SSE event which are buffered before the event is parsed.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.http.codec.HttpMessageReader
read, readMono
Constructor Detail
ServerSentEventHttpMessageReader
public ServerSentEventHttpMessageReader()
Constructor without aDecoder. In this mode onlyStringis supported as the data of an event.
ServerSentEventHttpMessageReader
public ServerSentEventHttpMessageReader(@Nullable Decoder<?> decoder)
Constructor with JSONDecoderfor decoding to Objects. Support for decoding toStringevent data is built-in.
Method Detail
getDecoder
@Nullable public Decoder<?> getDecoder()
Return the configuredDecoder.
setMaxInMemorySize
public void setMaxInMemorySize(int byteCount)
Configure a limit on the maximum number of bytes per SSE event which are buffered before the event is parsed.Note that the
data decoder, if provided, must also be customized accordingly to raise the limit if necessary in order to be able to parse the data portion of the event.By default this is set to 256K.
- Parameters:
byteCount- the max number of bytes to buffer, or -1 for unlimited- Since:
- 5.1.13
getMaxInMemorySize
public int getMaxInMemorySize()
Return theconfiguredbyte count limit.- Since:
- 5.1.13
getReadableMediaTypes
public List<MediaType> getReadableMediaTypes()
Description copied from interface:HttpMessageReaderReturn theMediaType's that this reader supports.- Specified by:
getReadableMediaTypesin interfaceHttpMessageReader<Object>
canRead
public boolean canRead(ResolvableType elementType, @Nullable MediaType mediaType)
Description copied from interface:HttpMessageReaderWhether the given object type is supported by this reader.- Specified by:
canReadin interfaceHttpMessageReader<Object>- Parameters:
elementType- the type of object to checkmediaType- the media type for the read (possiblynull)- Returns:
trueif readable,falseotherwise
read
public reactor.core.publisher.Flux<Object> read(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)
Description copied from interface:HttpMessageReaderRead from the input message and encode to a stream of objects.- Specified by:
readin interfaceHttpMessageReader<Object>- Parameters:
elementType- the type of objects in the stream which must have been previously checked viaHttpMessageReader.canRead(ResolvableType, MediaType)message- the message to read fromhints- additional information about how to read and decode the input- Returns:
- the decoded stream of elements
readMono
public reactor.core.publisher.Mono<Object> readMono(ResolvableType elementType, ReactiveHttpInputMessage message, Map<String,Object> hints)
Description copied from interface:HttpMessageReaderRead from the input message and encode to a single object.- Specified by:
readMonoin interfaceHttpMessageReader<Object>- Parameters:
elementType- the type of objects in the stream which must have been previously checked viaHttpMessageReader.canRead(ResolvableType, MediaType)message- the message to read fromhints- additional information about how to read and decode the input- Returns:
- the decoded object