Module Chatoyant_native.WebsocketSource

Sourcetype message =
  1. | Text of string
  2. | Binary of string
Sourcetype close = {
  1. code : int;
  2. reason : string;
}
Sourcetype request = {
  1. url : string;
  2. headers : (string * string) list;
  3. protocols : string list;
  4. timeout_ms : int option;
}
Sourcetype error =
  1. | Timeout of int
  2. | Network of string
  3. | Invalid_response of string
  4. | Closed of close option
Sourcetype connection
Sourceval error_to_string : error -> string
Sourcemodule type EFFECT = Chatoyant_runtime.Effect.WEBSOCKET with type message = message and type close = close and type request = request and type error = error
Sourceval make : ?https:Http.https -> ?max_frame_size:int -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> unit -> (module EFFECT)

Eio WebSocket effect with RFC 6455 handshake validation, masked client frames, close/ping/pong handling, and scoped connection resources.

Sourceval with_connection : ?https:Http.https -> ?max_frame_size:int -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> request -> (connection -> 'a) -> ('a, error) result
Sourceval send : connection -> message -> (unit, error) result
Sourceval close : ?code:int -> ?reason:string -> connection -> (unit, error) result