public interface ServerWebSocket extends WebSocketBase
Instances of this class are passed into a HttpServer.webSocketHandler(io.vertx.core.Handler<io.vertx.core.http.ServerWebSocket>)
or provided
when a WebSocket handshake is manually HttpServerRequest.toWebSocket(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.ServerWebSocket>>)
ed.
Modifier and Type | Method and Description |
---|---|
void |
accept()
Accept the WebSocket and terminate the WebSocket handshake.
|
Future<Void> |
close()
Close the WebSocket sending the default close frame.
|
ServerWebSocket |
closeHandler(Handler<Void> handler)
Set a close handler.
|
ServerWebSocket |
drainHandler(Handler<Void> handler)
Set a drain handler on the stream.
|
ServerWebSocket |
endHandler(Handler<Void> endHandler)
Set an end handler.
|
ServerWebSocket |
exceptionHandler(Handler<Throwable> handler)
Set an exception handler on the read stream.
|
ServerWebSocket |
fetch(long amount)
Fetch the specified
amount of elements. |
ServerWebSocket |
frameHandler(Handler<WebSocketFrame> handler)
Set a frame handler on the connection.
|
ServerWebSocket |
handler(Handler<Buffer> handler)
Set a data handler.
|
String |
host() |
String |
path() |
ServerWebSocket |
pause()
Pause the
ReadStream , it sets the buffer in fetch mode and clears the actual demand. |
String |
query() |
void |
reject()
Reject the WebSocket.
|
void |
reject(int status)
Like
reject() but with a status . |
ServerWebSocket |
resume()
Resume reading, and sets the buffer in
flowing mode. |
String |
scheme() |
Future<Integer> |
setHandshake(Future<Integer> future)
Like
setHandshake(Future, Handler) but returns a Future of the asynchronous result |
void |
setHandshake(Future<Integer> future,
Handler<AsyncResult<Integer>> handler)
Set an asynchronous result for the handshake, upon completion of the specified
future , the
WebSocket will either be
accepted when the future succeeds with the HTTP 101 status code
rejected when the future is succeeds with an HTTP status code different than 101
rejected when the future fails with the HTTP status code 500
The provided future might be completed by the WebSocket itself, e.g calling the close() method
will try to accept the handshake and close the WebSocket afterward. |
ServerWebSocket |
setWriteQueueMaxSize(int maxSize)
Set the maximum size of the write queue to
maxSize . |
SSLSession |
sslSession() |
String |
uri() |
ServerWebSocket |
writeBinaryMessage(Buffer data,
Handler<AsyncResult<Void>> handler)
Same as
WebSocketBase.writeBinaryMessage(Buffer) but with an handler called when the operation completes |
ServerWebSocket |
writeFinalBinaryFrame(Buffer data,
Handler<AsyncResult<Void>> handler)
Same as
WebSocketBase.writeFinalBinaryFrame(Buffer, Handler) but with an handler called when the operation completes |
ServerWebSocket |
writeFinalTextFrame(String text,
Handler<AsyncResult<Void>> handler)
Same as
WebSocketBase.writeFinalTextFrame(String, Handler) but with an handler called when the operation completes |
ServerWebSocket |
writeFrame(WebSocketFrame frame,
Handler<AsyncResult<Void>> handler)
Same as
WebSocketBase.writeFrame(WebSocketFrame) but with an handler called when the operation completes |
ServerWebSocket |
writeTextMessage(String text,
Handler<AsyncResult<Void>> handler)
Same as
WebSocketBase.writeTextMessage(String) but with an handler called when the operation completes |
binaryHandlerID, binaryMessageHandler, close, close, close, close, close, closeReason, closeStatusCode, end, end, headers, isClosed, isSsl, localAddress, peerCertificateChain, peerCertificates, pongHandler, remoteAddress, subProtocol, textHandlerID, textMessageHandler, writeBinaryMessage, writeFinalBinaryFrame, writeFinalTextFrame, writeFrame, writePing, writePing, writePong, writePong, writeTextMessage
pipe, pipeTo, pipeTo
end, end, write, write, writeQueueFull
ServerWebSocket exceptionHandler(Handler<Throwable> handler)
ReadStream
exceptionHandler
in interface ReadStream<Buffer>
exceptionHandler
in interface StreamBase
exceptionHandler
in interface WebSocketBase
exceptionHandler
in interface WriteStream<Buffer>
handler
- the exception handlerServerWebSocket handler(Handler<Buffer> handler)
ReadStream
handler
in interface ReadStream<Buffer>
handler
in interface WebSocketBase
ServerWebSocket pause()
ReadStream
ReadStream
, it sets the buffer in fetch
mode and clears the actual demand.
While it's paused, no data will be sent to the data handler
.
pause
in interface ReadStream<Buffer>
pause
in interface WebSocketBase
ServerWebSocket resume()
ReadStream
flowing
mode.
If the ReadStream
has been paused, reading will recommence on it.resume
in interface ReadStream<Buffer>
resume
in interface WebSocketBase
ServerWebSocket fetch(long amount)
ReadStream
amount
of elements. If the ReadStream
has been paused, reading will
recommence with the specified amount
of items, otherwise the specified amount
will
be added to the current stream demand.fetch
in interface ReadStream<Buffer>
fetch
in interface WebSocketBase
ServerWebSocket endHandler(Handler<Void> endHandler)
ReadStream
endHandler
in interface ReadStream<Buffer>
endHandler
in interface WebSocketBase
ServerWebSocket setWriteQueueMaxSize(int maxSize)
WriteStream
maxSize
. You will still be able to write to the stream even
if there is more than maxSize
items in the write queue. This is used as an indicator by classes such as
Pipe
to provide flow control.
The value is defined by the implementation of the stream, e.g in bytes for a
NetSocket
, etc...setWriteQueueMaxSize
in interface WebSocketBase
setWriteQueueMaxSize
in interface WriteStream<Buffer>
maxSize
- the max size of the write streamServerWebSocket drainHandler(Handler<Void> handler)
WriteStream
Pipe
for an example of this being used.
The stream implementation defines when the drain handler, for example it could be when the queue size has been
reduced to maxSize / 2
.
drainHandler
in interface WebSocketBase
drainHandler
in interface WriteStream<Buffer>
handler
- the handlerServerWebSocket writeFrame(WebSocketFrame frame, Handler<AsyncResult<Void>> handler)
WebSocketBase
WebSocketBase.writeFrame(WebSocketFrame)
but with an handler
called when the operation completeswriteFrame
in interface WebSocketBase
ServerWebSocket writeFinalTextFrame(String text, Handler<AsyncResult<Void>> handler)
WebSocketBase
WebSocketBase.writeFinalTextFrame(String, Handler)
but with an handler
called when the operation completeswriteFinalTextFrame
in interface WebSocketBase
ServerWebSocket writeFinalBinaryFrame(Buffer data, Handler<AsyncResult<Void>> handler)
WebSocketBase
WebSocketBase.writeFinalBinaryFrame(Buffer, Handler)
but with an handler
called when the operation completeswriteFinalBinaryFrame
in interface WebSocketBase
ServerWebSocket writeBinaryMessage(Buffer data, Handler<AsyncResult<Void>> handler)
WebSocketBase
WebSocketBase.writeBinaryMessage(Buffer)
but with an handler
called when the operation completeswriteBinaryMessage
in interface WebSocketBase
ServerWebSocket writeTextMessage(String text, Handler<AsyncResult<Void>> handler)
WebSocketBase
WebSocketBase.writeTextMessage(String)
but with an handler
called when the operation completeswriteTextMessage
in interface WebSocketBase
ServerWebSocket closeHandler(Handler<Void> handler)
WebSocketBase
WebSocketBase.closeStatusCode()
will return the status code and WebSocketBase.closeReason()
will return the reason.closeHandler
in interface WebSocketBase
handler
- the handlerServerWebSocket frameHandler(Handler<WebSocketFrame> handler)
WebSocketBase
frameHandler
in interface WebSocketBase
handler
- the handlerString scheme()
String host()
String uri()
String path()
String query()
void accept()
IllegalStateException
- when the WebSocket handshake is already setvoid reject()
Calling this method from the WebSocket handler when it is first passed to you gives you the opportunity to reject the WebSocket, which will cause the WebSocket handshake to fail by returning a 502 response code.
You might use this method, if for example you only want to accept WebSockets with a particular path.
IllegalStateException
- when the WebSocket handshake is already setvoid reject(int status)
reject()
but with a status
.void setHandshake(Future<Integer> future, Handler<AsyncResult<Integer>> handler)
future
, the
WebSocket will either be
future
succeeds with the HTTP 101 status codefuture
is succeeds with an HTTP status code different than 101future
fails with the HTTP status code 500
close()
method
will try to accept the handshake and close the WebSocket afterward. Thus it is advised to try to complete
the future
with Promise.tryComplete(T)
or Promise.tryFail(java.lang.Throwable)
.
This method should be called from the WebSocket handler to explicitly set an asynchronous handshake.
Calling this method will override the future
completion handler.
future
- the future to complete withhandler
- the completion handlerIllegalStateException
- when the WebSocket has already an asynchronous resultFuture<Integer> setHandshake(Future<Integer> future)
setHandshake(Future, Handler)
but returns a Future
of the asynchronous resultFuture<Void> close()
The WebSocket handshake will be accepted when it hasn't yet been settled or when an asynchronous handshake is in progress.
close
in interface WebSocketBase
SSLSession sslSession()
sslSession
in interface WebSocketBase
SSLSession
Copyright © 2022 Eclipse. All rights reserved.