public class StandardWebSocketSession extends AbstractListenerWebSocketSession<Session>
WebSocketSession
adapter for a standard Java (JSR 356)
Session
.AbstractListenerWebSocketSession.WebSocketSendProcessor
logger
Constructor and Description |
---|
StandardWebSocketSession(Session session,
HandshakeInfo info,
DataBufferFactory factory) |
StandardWebSocketSession(Session session,
HandshakeInfo info,
DataBufferFactory factory,
reactor.core.publisher.MonoProcessor<Void> completionMono) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
canSuspendReceiving()
Whether the underlying WebSocket API has flow control and can suspend and
resume the receiving of messages.
|
reactor.core.publisher.Mono<Void> |
close(CloseStatus status)
Close the WebSocket session with the given status.
|
protected void |
resumeReceiving()
Resume receiving new message(s) after demand is generated by the
downstream Subscriber.
|
protected boolean |
sendMessage(WebSocketMessage message)
Send the given WebSocket message.
|
protected void |
suspendReceiving()
Suspend receiving until received message(s) are processed and more demand
is generated by the downstream Subscriber.
|
getSendProcessor, onComplete, onError, onNext, onSubscribe, receive, send
binaryMessage, bufferFactory, getAttributes, getDelegate, getHandshakeInfo, getId, getLogPrefix, pingMessage, pongMessage, textMessage, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
close
public StandardWebSocketSession(Session session, HandshakeInfo info, DataBufferFactory factory)
public StandardWebSocketSession(Session session, HandshakeInfo info, DataBufferFactory factory, @Nullable reactor.core.publisher.MonoProcessor<Void> completionMono)
protected boolean canSuspendReceiving()
AbstractListenerWebSocketSession
Note: Sub-classes are encouraged to start out in suspended mode, if possible, and wait until demand is received.
canSuspendReceiving
in class AbstractListenerWebSocketSession<Session>
protected void suspendReceiving()
AbstractListenerWebSocketSession
Note: if the underlying WebSocket API does not provide
flow control for receiving messages, this method should be a no-op
and AbstractListenerWebSocketSession.canSuspendReceiving()
should return false
.
suspendReceiving
in class AbstractListenerWebSocketSession<Session>
protected void resumeReceiving()
AbstractListenerWebSocketSession
Note: if the underlying WebSocket API does not provide
flow control for receiving messages, this method should be a no-op
and AbstractListenerWebSocketSession.canSuspendReceiving()
should return false
.
resumeReceiving
in class AbstractListenerWebSocketSession<Session>
protected boolean sendMessage(WebSocketMessage message) throws IOException
AbstractListenerWebSocketSession
Note: Sub-classes are responsible for releasing the payload data buffer, once fully written, if pooled buffers apply to the underlying container.
sendMessage
in class AbstractListenerWebSocketSession<Session>
IOException
public reactor.core.publisher.Mono<Void> close(CloseStatus status)
WebSocketSession
status
- the close status