package dream

  1. Overview
  2. Docs
type t
type error = [
  1. | Httpaf.Client_connection.error
  2. | `Handshake_failure of Httpaf.Response.t * [ `read ] Httpaf.Body.t
]
type input_handlers = {
  1. frame : opcode:Websocket.Opcode.t -> is_fin:bool -> Bigstringaf.t -> off:int -> len:int -> unit;
  2. eof : unit -> unit;
}
val connect : nonce:string -> ?headers:Httpaf.Headers.t -> sha1:(string -> string) -> error_handler:(error -> unit) -> websocket_handler:(Wsd.t -> input_handlers) -> string -> t
val create : ?error_handler:(Wsd.t -> [ `Exn of exn ] -> unit) -> (Wsd.t -> input_handlers) -> t
val next_read_operation : t -> [ `Read | `Yield | `Close ]
val next_write_operation : t -> [ `Write of Bigstringaf.t IOVec.t list | `Yield | `Close of int ]
val read : t -> Bigstringaf.t -> off:int -> len:int -> int
val read_eof : t -> Bigstringaf.t -> off:int -> len:int -> int
val yield_reader : t -> (unit -> unit) -> unit
val report_write_result : t -> [ `Ok of int | `Closed ] -> unit
val yield_writer : t -> (unit -> unit) -> unit
val report_exn : t -> exn -> unit
val is_closed : t -> bool
val shutdown : t -> unit
OCaml

Innovation. Community. Security.