feat(server-sent): add a close() function

This commit is contained in:
Simon Cruanes 2021-12-11 10:01:55 -05:00
parent b5269f5b05
commit 89344f46f0
No known key found for this signature in database
GPG key ID: 4AC01D0849AA62B6
2 changed files with 8 additions and 1 deletions

View file

@ -801,6 +801,7 @@ module type SERVER_SENT_GENERATOR = sig
?retry:string -> ?retry:string ->
data:string -> data:string ->
unit -> unit unit -> unit
val close : unit -> unit
end end
type server_sent_generator = (module SERVER_SENT_GENERATOR) type server_sent_generator = (module SERVER_SENT_GENERATOR)
@ -940,8 +941,10 @@ let add_route_server_sent_handler ?accept self route f =
send_response_idempotent_() send_response_idempotent_()
) )
let send_event = send_event let send_event = send_event
let close () = raise Exit
end in end in
f req (module SSG : SERVER_SENT_GENERATOR); try f req (module SSG : SERVER_SENT_GENERATOR);
with Exit -> close_out oc
in in
add_route_handler_ self ?accept ~meth:`GET route ~tr_req f add_route_handler_ self ?accept ~meth:`GET route ~tr_req f

View file

@ -595,6 +595,10 @@ module type SERVER_SENT_GENERATOR = sig
unit -> unit unit -> unit
(** Send an event from the server. (** Send an event from the server.
If data is a multiline string, it will be sent on separate "data:" lines. *) If data is a multiline string, it will be sent on separate "data:" lines. *)
val close : unit -> unit
(** Close connection.
@since 0.11 *)
end end
type server_sent_generator = (module SERVER_SENT_GENERATOR) type server_sent_generator = (module SERVER_SENT_GENERATOR)