aboutsummaryrefslogtreecommitdiff
path: root/portal/lib/ws
diff options
context:
space:
mode:
authorClombrong <cromblong@egregore.fun>2025-06-17 23:38:08 +0200
committerClombrong <cromblong@egregore.fun>2025-06-17 23:41:13 +0200
commitc91d16adf3253ff1224fb093c7708964e6b2a978 (patch)
tree93a81849081df4241e5ae667ae113a7cd06a2816 /portal/lib/ws
parent98f092a2e47882091bbbe10642cc810df9e11f5e (diff)
feat(portal-websockets): return a stream of signals with stanza_open
Diffstat (limited to 'portal/lib/ws')
-rw-r--r--portal/lib/ws/dune2
-rw-r--r--portal/lib/ws/portal.ml5
2 files changed, 4 insertions, 3 deletions
diff --git a/portal/lib/ws/dune b/portal/lib/ws/dune
index fa14219..22de458 100644
--- a/portal/lib/ws/dune
+++ b/portal/lib/ws/dune
@@ -2,5 +2,5 @@
(name portal_ws)
(implements portal)
(public_name portal-websockets)
- (libraries lwt js_of_ocaml js_of_ocaml-lwt xmlm markup markup-lwt)
+ (libraries lwt js_of_ocaml js_of_ocaml-lwt markup markup-lwt)
(preprocess (pps js_of_ocaml-ppx)))
diff --git a/portal/lib/ws/portal.ml b/portal/lib/ws/portal.ml
index e0c76b4..7b79166 100644
--- a/portal/lib/ws/portal.ml
+++ b/portal/lib/ws/portal.ml
@@ -1,6 +1,7 @@
open Lwt.Syntax
open Lwt.Infix
open Js_of_ocaml
+open Markup
let jss = Js.string
let sjs = Js.to_string
@@ -9,7 +10,7 @@ type t = string Lwt_stream.t * (string option -> unit)
(* sic. XEP-0156: "host-meta files MUST be fetched only over HTTPS". I don't make the rules. *)
let well_known_of (domain : string) = "https://" ^ domain ^ "/.well-known/host-meta"
-let stanza_open ?from domain =
+let stanza_open ?from domain : (signal, sync) stream =
(** [open_stanza domain] is an <open /> stanza for [domain].
If [from] is specified, the <open /> stanza has the from parameter.
@@ -27,7 +28,7 @@ let stanza_open ?from domain =
(("urn:ietf:params:xml:ns:xmpp-framing", "open"),
attributes);
`End_element]
- in stanza |> of_list |> write_xml |> to_string
+ in stanza |> of_list
let stanza_close = {|<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />|}