Package io.micronaut.websocket
Interface WebSocketSession
- All Superinterfaces:
AutoCloseable,ConversionServiceProvider,ConvertibleValues<Object>,Iterable<Map.Entry<String,,Object>> MutableConvertibleValues<Object>,ValueResolver<CharSequence>
- All Known Implementing Classes:
NettyWebSocketSession
Represents an open WebSocket connection. Based largely on
javax.websocket and likely to be able to implement the spec in the future.- Since:
- 1.0
- Author:
- graemerocher
-
Field Summary
Fields inherited from interface io.micronaut.core.convert.value.ConvertibleValues
EMPTY -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidclose(CloseReason closeReason) Close the session with the given event.getId()The ID of the session.Set<? extends WebSocketSession>The current open sessions.The protocol version of the WebSocket protocol currently being used.default ConvertibleMultiValues<String>The request parameters used to create this session.The request URI this session was opened under.The subprotocol if one is used.default ConvertibleValues<Object>Any matching URI path variables.The userPrincipalused to create the session.booleanisOpen()Whether the session is open.booleanisSecure()Whether the connection is secure.booleanWhether the session is writable.default <T> Publisher<T>send(T message) Send the given message to the remote peer.<T> Publisher<T>Send the given message to the remote peer.default <T> CompletableFuture<T>sendAsync(T message) Send the given message to the remote peer asynchronously.<T> CompletableFuture<T>Send the given message to the remote peer asynchronously.default @NonNull CompletableFuture<?>sendPingAsync(@io.micronaut.core.annotation.NonNull byte[] content) Send a ping through this WebSocket.default voidSend the given message to the remote peer synchronously.default voidSend the given message to the remote peer synchronously.Methods inherited from interface io.micronaut.core.convert.value.ConvertibleValues
asMap, asMap, asProperties, contains, forEach, getConversionService, getValue, getValueType, isEmpty, iterator, names, subMap, subMap, subMap, valuesMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface io.micronaut.core.convert.value.MutableConvertibleValues
clear, put, putAll, putAll, removeMethods inherited from interface io.micronaut.core.value.ValueResolver
get, get, get, get
-
Method Details
-
getId
String getId()The ID of the session.- Returns:
- The ID of the session
-
getAttributes
MutableConvertibleValues<Object> getAttributes()- Returns:
- Only the attributes of the session
-
isOpen
boolean isOpen()Whether the session is open.- Returns:
- True if it is
-
isWritable
boolean isWritable()Whether the session is writable. It may not be writable, if the buffer is currently full- Returns:
- True if it is
-
isSecure
boolean isSecure()Whether the connection is secure.- Returns:
- True if it is secure
-
getOpenSessions
Set<? extends WebSocketSession> getOpenSessions()The current open sessions.- Returns:
- The open sessions
-
getRequestURI
URI getRequestURI()The request URI this session was opened under.- Returns:
- The request URI
-
getProtocolVersion
String getProtocolVersion()The protocol version of the WebSocket protocol currently being used.- Returns:
- The protocol version
-
send
Send the given message to the remote peer. The resultingPublisherdoes not start sending until subscribed to. If you return it from Micronaut annotated methods such asOnOpenandOnMessage, Micronaut will subscribe to it and send the message without blocking.- Type Parameters:
T- The message type- Parameters:
message- The messagemediaType- The media type of the message. Used to look up an appropriate codec via theMediaTypeCodecRegistry.- Returns:
- A
Publisherthat either emits an error or emits the message once it has been published successfully.
-
sendAsync
Send the given message to the remote peer asynchronously.- Type Parameters:
T- The message type- Parameters:
message- The messagemediaType- The media type of the message. Used to look up an appropriate codec via theMediaTypeCodecRegistry.- Returns:
- A
CompletableFuturethat tracks the execution.CompletableFuture.get()and related methods will return the message on success, on error throw the underlying Exception.
-
sendSync
Send the given message to the remote peer synchronously.- Parameters:
message- The messagemediaType- The media type of the message. Used to look up an appropriate codec via theMediaTypeCodecRegistry.
-
send
Send the given message to the remote peer. The resultingPublisherdoes not start sending until subscribed to. If you return it from Micronaut annotated methods such asOnOpenandOnMessage, Micronaut will subscribe to it and send the message without blocking.- Type Parameters:
T- The message type- Parameters:
message- The message- Returns:
- A
Publisherthat either emits an error or emits the message once it has been published successfully.
-
sendAsync
Send the given message to the remote peer asynchronously.- Type Parameters:
T- The message type- Parameters:
message- The message- Returns:
- A
CompletableFuturethat tracks the execution.CompletableFuture.get()and related methods will return the message on success, on error throw the underlying Exception.
-
sendSync
Send the given message to the remote peer synchronously.- Parameters:
message- The message
-
sendPingAsync
@NonNull default @NonNull CompletableFuture<?> sendPingAsync(@NonNull @io.micronaut.core.annotation.NonNull byte[] content) Send a ping through this WebSocket. The pong reply can be intercepted using a@OnMessagemethod that accepts aWebSocketPongMessage.- Parameters:
content- The content of the ping. The remote should return the same content in itsWebSocketPongMessage.- Returns:
- A future that completes when the ping has been sent. (Not when the pong has been received!)
-
getSubprotocol
The subprotocol if one is used.- Returns:
- The subprotocol
-
getRequestParameters
The request parameters used to create this session.- Returns:
- The request parameters
-
getUriVariables
Any matching URI path variables.- Returns:
- The path variables
-
getUserPrincipal
The userPrincipalused to create the session.- Returns:
- The
Principal
-
close
void close()- Specified by:
closein interfaceAutoCloseable
-
close
Close the session with the given event.- Parameters:
closeReason- The close event
-