Initializer
WebSocket(WebSocket unknown)
Inherited Attributes
Attributes inherited from: Object
hash, string
Methods
binaryHandlerIDshared actual default String binaryHandlerID()

When a Websocket is created it automatically registers an event handler with the event bus - the ID of that handler is given by this method.

Given this ID, a different event loop can send a binary frame to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other WebSockets which are owned by different event loops.

binaryMessageHandlershared actual default WebSocketBase binaryMessageHandler(Anything(Buffer)? handler)

Set a binary message handler on the connection. This handler serves a similar purpose to handler except that if a message comes into the socket in multiple frames, the data from the frames will be aggregated into a single buffer before calling the handler (using isFinal to find the boundaries).

Parameters:
  • handler

    the handler

closeshared actual default void close()

Close the WebSocket.

closeshared actual default void close(Integer statusCode)
closeshared actual default void close(Integer statusCode, String? reason)
closeHandlershared actual default WebSocket closeHandler(Anything()? handler)

Set a close handler. This will be called when the WebSocket is closed.

drainHandlershared actual default WebSocket drainHandler(Anything()? handler)

Set a drain handler on the stream. If the write queue is full, then the handler will be called when the write queue is ready to accept buffers again. See Pump 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.

endshared actual default void end()

Calls close

endshared actual default void end(Buffer t)

Same as end but writes some data to the stream before ending.

endHandlershared actual default WebSocket endHandler(Anything()? endHandler)

Set an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.

exceptionHandlershared actual default WebSocket exceptionHandler(Anything(Throwable)? handler)

Set an exception handler.

frameHandlershared actual default WebSocket frameHandler(Anything(WebSocketFrame)? handler)

Set a frame handler on the connection. This handler will be called when frames are read on the connection.

handlershared actual default WebSocket handler(Anything(Buffer)? handler)

Set a data handler. As data is read, the handler will be called with the data.

isSslshared actual default Boolean isSsl()
localAddressshared actual default SocketAddress localAddress()
pauseshared actual default WebSocket pause()

Pause the ReadSupport. While it's paused, no data will be sent to the dataHandler

pongHandlershared actual default WebSocketBase pongHandler(Anything(Buffer)? handler)

Set a pong message handler on the connection. This handler will be invoked every time a pong message is received on the server, and can be used by both clients and servers since the RFC 6455 Sections 5.5.2 and 5.5.3 do not specify whether the client or server sends a ping.

Pong frames may be at most 125 bytes (octets).

There is no ping handler since pings should immediately be responded to with a pong with identical content

Pong frames may be received unsolicited.

Parameters:
  • handler

    the handler

remoteAddressshared actual default SocketAddress remoteAddress()
resumeshared actual default WebSocket resume()

Resume reading. If the ReadSupport has been paused, reading will recommence on it.

setWriteQueueMaxSizeshared actual default WebSocket setWriteQueueMaxSize(Integer maxSize)

Set the maximum size of the write queue to 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 Pump to provide flow control.

The value is defined by the implementation of the stream, e.g in bytes for a NetSocket, the number of Message for a MessageProducer, etc…

subProtocolshared actual default String subProtocol()

Returns the websocket sub protocol selected by the websocket handshake.

On the server, the value will be null when the handler receives the websocket callback as the handshake will not be completed yet.

textHandlerIDshared actual default String textHandlerID()

When a Websocket is created it automatically registers an event handler with the eventbus, the ID of that handler is given by textHandlerID.

Given this ID, a different event loop can send a text frame to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other WebSockets which are owned by different event loops.

textMessageHandlershared actual default WebSocketBase textMessageHandler(Anything(String)? handler)

Set a text message handler on the connection. This handler will be called similar to the , but the buffer will be converted to a String first

Parameters:
  • handler

    the handler

writeshared actual default WebSocket write(Buffer data)
writeBinaryMessageshared actual default WebSocket writeBinaryMessage(Buffer data)

Writes a (potentially large) piece of binary data to the connection. This data might be written as multiple frames if it exceeds the maximum WebSocket frame size.

writeFinalBinaryFrameshared actual default WebSocket writeFinalBinaryFrame(Buffer data)

Write a final WebSocket binary frame to the connection

writeFinalTextFrameshared actual default WebSocket writeFinalTextFrame(String text)

Write a final WebSocket text frame to the connection

writeFrameshared actual default WebSocket writeFrame(WebSocketFrame frame)

Write a WebSocket frame to the connection

writePingshared actual default WebSocketBase writePing(Buffer data)

Writes a ping to the connection. This will be written in a single frame. Ping frames may be at most 125 bytes (octets).

This method should not be used to write application data and should only be used for implementing a keep alive or to ensure the client is still responsive, see RFC 6455 Section 5.5.2.

There is no pingHandler because RFC 6455 section 5.5.2 clearly states that the only response to a ping is a pong with identical contents.

Parameters:
  • data

    the data to write, may be at most 125 bytes

writePongshared actual default WebSocketBase writePong(Buffer data)

Writes a pong to the connection. This will be written in a single frame. Pong frames may be at most 125 bytes (octets).

This method should not be used to write application data and should only be used for implementing a keep alive or to ensure the client is still responsive, see RFC 6455 Section 5.5.2.

There is no need to manually write a Pong, as the server and client both handle responding to a ping with a pong automatically and this is exposed to users.RFC 6455 Section 5.5.3 states that pongs may be sent unsolicited in order to implement a one way heartbeat.

Parameters:
  • data

    the data to write, may be at most 125 bytes

writeQueueFullshared actual default Boolean writeQueueFull()

This will return true if there are more bytes in the write queue than the value set using setWriteQueueMaxSize

writeTextMessageshared actual default WebSocket writeTextMessage(String text)

Writes a (potentially large) piece of text data to the connection. This data might be written as multiple frames if it exceeds the maximum WebSocket frame size.

Inherited Methods
Methods inherited from: Object
equals
Methods inherited from: ReadStream<T>
Methods inherited from: StreamBase
Methods inherited from: WebSocketBase
Methods inherited from: WriteStream<T>