Net.HTTP.WebSocket
module Net.HTTP.WebSocket
High-level RFC 6455 client messages. The runtime handles fragmentation and ping/pong frames; reconnect and heartbeat policies remain application-owned.
using Net.HTTP.WebSocket
let socket = WebSocket.connect("wss://example.test/events").try
socket.send(Text("hello")).try
let message = socket.receiveMessage.try
socket.close
type Message
A complete high-level WebSocket message. Fragmentation and ping/pong control frames are handled by the connection runtime.
Variants
Text(String)BinaryMessage(Binary)CloseMessage(Integer, String)
record ClientOptions
Client handshake policy and the maximum reassembled message size.
Fields
record Session
Negotiated handshake information. The subprotocol is None when the server selected none.
Fields
subprotocolString?
type Connection
An opaque RFC 6455 client connection. It does not reconnect automatically.
Methods
send
send(message: Message) -> Result<Void, NetError>
Sends one masked text, binary, or close message.
Returns success or Protocol/Limit/Closed
Examples
+connection.send(Text("hello")).try+
receiveMessage
receiveMessage : Result<Message, NetError>
receive is a Kex process keyword, so the public method spells out the operation while preserving the plan's high-level message semantics. Reassembles fragments, validates UTF-8, and automatically answers pings.
Returns the next data or close message
Examples
+connection.receiveMessage.try+
module Net.HTTP.WebSocket.WebSocket
connect
connect(url: String, options: ClientOptions) -> Result<Connection, NetError>
Opens a ws: or verified wss: connection with default options.
Parameters
url- an absolute WebSocket URL
Returns a connection or typed handshake error
Examples
+WebSocket.connect("wss://example.test/events").try+.