Module Websocket

module Connection_close_reason : sig ... end
type t
val sec_websocket_accept_header_value : sec_websocket_key:string -> string
module Websocket_role : sig ... end
val create : ?⁠opcode:[ `Text | `Binary ] -> role:Websocket_role.t -> Async.Reader.t -> Async.Writer.t -> t
val pipes : t -> string Async.Pipe.Reader.t * string Async.Pipe.Writer.t
val close_finished : t -> (Connection_close_reason.t * string * Core.Info.t option) Async.Deferred.t