diff options
-rw-r--r-- | lib/dune | 4 | ||||
-rw-r--r-- | lib/flesh.ml | 1 | ||||
-rw-r--r-- | lib/stream.ml | 5 | ||||
-rw-r--r-- | test/js/dune | 2 | ||||
-rw-r--r-- | test/js/websockets_hello.ml | 14 |
5 files changed, 16 insertions, 10 deletions
@@ -1,3 +1,5 @@ (library (public_name flesh) - (libraries lwt)) + (libraries + lwt + portal)) diff --git a/lib/flesh.ml b/lib/flesh.ml index e69de29..8f4bd77 100644 --- a/lib/flesh.ml +++ b/lib/flesh.ml @@ -0,0 +1 @@ +module Stream = Stream diff --git a/lib/stream.ml b/lib/stream.ml new file mode 100644 index 0000000..29b6425 --- /dev/null +++ b/lib/stream.ml @@ -0,0 +1,5 @@ +open Lwt.Syntax + +let start domain : Portal.t Lwt.t = + let+ stream, push = Portal.connect domain + in stream, push diff --git a/test/js/dune b/test/js/dune index b34c980..f6cc084 100644 --- a/test/js/dune +++ b/test/js/dune @@ -1,6 +1,6 @@ (test (name websockets_hello) - (libraries portal_ws lwt js_of_ocaml) + (libraries portal_ws lwt js_of_ocaml flesh) (modes js) (preprocess (pps js_of_ocaml-ppx)) (deps node_modules) diff --git a/test/js/websockets_hello.ml b/test/js/websockets_hello.ml index 5705dc9..6bc863b 100644 --- a/test/js/websockets_hello.ml +++ b/test/js/websockets_hello.ml @@ -1,5 +1,6 @@ open Lwt.Syntax open Js_of_ocaml +open Flesh (* https://stackoverflow.com/questions/34929382/what-are-the-differences-between-lwt-async-and-lwt-main-run-on-ocaml-node-js *) let rec run t = @@ -18,11 +19,8 @@ let rec run t = let () = run @@ let domain = "egregore.fun" in - let* stream, push = - Portal.connect domain in - push (Some (Portal.stanza_open domain)); - push (Some Portal.stanza_close); - Lwt_stream.iter - (fun stanza -> - print_endline (">>> " ^ stanza)) - stream + let* stream, push = Stream.start domain + in push (Some (Portal.stanza_open domain)); + let+ opens = Lwt_stream.get stream + in print_endline (Option.get opens); + push (Some (Portal.stanza_close)) |