v2026.5.3
All Bundles
Bundle Shared networking types used across all HTTP libraries: Url (parsing and construction), Response (status code, headers, body), Cookie, and WebDownloader for streaming downloads. Compile with -lib net.

WebSocket

Web socket client

client := WebSocket->New(Url->New("ws://echo.websocket.org"));
if(client->Connect()) {
  client->ReadSocketText()->PrintLine();
  
  client->WriteTextSocket("Hello World!");
  client->ReadSocketText()->PrintLine();
  
  client->CloseSocket();
};

Operations

AddHeader #

Adds a HTTPS request header

method : public : AddHeader(name:String, value:String) ~ Nil

Parameters

NameTypeDescription
nameStringheader name
valueStringheader value

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://secure.example.com/ws"));
ws->AddHeader("Authorization", "Bearer token123");
ws->Connect();

CloseSocket #

Closes the web socket connection

method : public : CloseSocket() ~ Nil

Example

ws->CloseSocket();

CloseSocket #

Closes the web socket connection

method : public : CloseSocket(reason:Int) ~ Nil

Parameters

NameTypeDescription
reasonIntreason to close socket

Example

ws->CloseSocket(1000);  # 1000 = normal closure

Connect #

Opens a connection to a web socket

method : public : Connect() ~ Bool

Return

TypeDescription
Booltrue if connected, false otherwise

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
if(ws->Connect()) {
  "Connected"->PrintLine();
  ws->CloseSocket();
};

EnableCookies #

Sets cookie support

method : public : EnableCookies(cookies_enabled:Bool) ~ Nil

Parameters

NameTypeDescription
cookies_enabledBooltrue if cookies are enabled, false otherwise

GetCookies #

Gets the cookies

method : public : GetCookies() ~ Vector<Cookie>

Return

TypeDescription
Vector<Cookie>vector of cookies

GetIssuer #

Gets the socket's X.509 certificate issuer name

method : public : GetIssuer() ~ String

Return

TypeDescription
Stringcertificate issuer name

GetStatusCode #

Gets the last status code

method : public : GetStatusCode() ~ Int

Return

TypeDescription
Intlast status code

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
ws->Connect();
ws->GetStatusCode()->PrintLine();  # 101

GetStatusMessage #

Gets the last status message

method : public : GetStatusMessage() ~ String

Return

TypeDescription
Stringlast status message

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
if(<>ws->Connect()) {
  ws->GetStatusMessage()->PrintLine();  # error message
};

GetSubject #

Gets the socket's X.509 certificate subject name

method : public : GetSubject() ~ String

Return

TypeDescription
Stringcertificate subject name

New # constructor

Constructor

New(url:Web.HTTP.Url, cookies_enabled:Bool)

Parameters

NameTypeDescription
urlUrlURL
cookies_enabledBooltrue if cookies are enabled, false otherwise

New # constructor

Constructor

New(url:Web.HTTP.Url)

Parameters

NameTypeDescription
urlUrlURL

PingSocket #

Pings the websocket server

method : public : PingSocket() ~ Bool

Return

TypeDescription
Booltrue if pinged, false otherwise

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
if(ws->Connect()) {
  if(ws->PingSocket()) {
    "Server alive"->PrintLine();
  };
  ws->CloseSocket();
};

ReadSocketBinary #

Reads binary input from the web socket

method : public : ReadSocketBinary() ~ Byte[]

Return

TypeDescription
Bytebinary input read, Nil otherwise

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://binary.example.com"));
if(ws->Connect()) {
  data := ws->ReadSocketBinary();
  data->Size()->PrintLine();
  ws->CloseSocket();
};

ReadSocketText #

Reads text from the web socket

method : public : ReadSocketText() ~ String

Return

TypeDescription
Stringtext read, Nil otherwise

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
if(ws->Connect()) {
  ws->WriteSocket("Hello");
  msg := ws->ReadSocketText();
  msg->PrintLine();
  ws->CloseSocket();
};

RemoveHeader #

Removes a HTTPS request header

method : public : RemoveHeader(name:String) ~ Nil

Parameters

NameTypeDescription
nameStringheader name

WriteSocket #

Writes binary output to the web socket

method : public : WriteSocket(data:Byte[], fragment:Bool) ~ Bool

Parameters

NameTypeDescription
dataBytebinary payload
fragmentBooltrue if fragmented, false otherwise

Return

TypeDescription
Booltrue if successful, false otherwise

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
if(ws->Connect()) {
  ws->WriteSocket("ping"->ToByteArray(), false);
  ws->CloseSocket();
};

WriteSocket #

Writes text to the web socket

method : public : WriteSocket(message:String, fragment:Bool) ~ Bool

Parameters

NameTypeDescription
messageStringmessage
fragmentBooltrue if fragmented, false otherwise

Return

TypeDescription
Booltrue if successful, false otherwise

Example

ws := Web.HTTP.WebSocket->New(Web.HTTP.Url->New("wss://echo.websocket.org"));
if(ws->Connect()) {
  ws->WriteSocket("Hello, WebSocket!");
  ws->ReadSocketText()->PrintLine();
  ws->CloseSocket();
};