class web::WebSocket

sys::Obj
  web::WebSocket

Source

WebSocket is used for both client and server web socket messaging. Current implementation only supports basic non-fragmented text or binary messages.

close

Bool close()

Source

Close the web socket

isClosed

Bool isClosed()

Source

Return true if this socket has been closed

openClient

static WebSocket openClient(Uri uri, [Str:Str]? headers := null)

Source

Open a client connection. The URI must have a "ws" or "wss" scheme. The headers parameter defines additional HTTP headers to include in the connection request.

openServer

static WebSocket openServer(WebReq req, WebRes res)

Source

Upgrade a server request to a WebSocket. Raise IOErr is there is any problems during the handshake in which case the calling WebMod should return a 400 response.

Callers should set the Sec-WebSocket-Protocol response header before calling this method. However, if not set then this call will set it to the request header value for Sec-WebSocket-Protocol (if available).

Note: once this method completes, the socket is now owned by the WebSocket instance and not the web server (wisp); it must be explicitly closed to prevent a file handle leak.

receive

Obj? receive()

Source

Receive a message which is returned as either a Str or Buf. Raise IOErr if socket has error or is closed.

send

Void send(Obj msg)

Source

Send a message which must be either a Str of Buf. Bufs are sent using their full contents irrelevant of their current position.

socketOptions

@Deprecated { msg=... }
SocketOptions socketOptions()

Source

Access to socket options for this request.