diff options
author | Clombrong <clombrong@egregore.fun> | 2025-05-08 21:16:28 +0200 |
---|---|---|
committer | Clombrong <cromblong@egregore.fun> | 2025-05-08 21:16:28 +0200 |
commit | 7a5da788b661ea9efeb92d060b2bb8f4923a7e0d (patch) | |
tree | a2d9c84f836d77bc4193bdd7c6c1a89f041eb5b6 | |
parent | 9e315fd0223d56347db74f0f03dc7f853dd44ce4 (diff) |
feat: add open and close stanzas
-rw-r--r-- | portal/lib/portal_ws.ml | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/portal/lib/portal_ws.ml b/portal/lib/portal_ws.ml index f8fb4a9..0b21f4b 100644 --- a/portal/lib/portal_ws.ml +++ b/portal/lib/portal_ws.ml @@ -7,6 +7,16 @@ let sjs = Js.to_string (* 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 domain = + (** [open_stanza domain] is an <open /> stanza for [domain]. *) + Printf.sprintf + {|<open xmlns="urn:ietf:params:xml:ns:xmpp-framing" + to="%s" + version="1.0" />|} + domain + +let stanza_close = {|<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />|} + let ws_endpoint (domain : string) = (** [ws_endpoint domain] is a promise containing the XMPP websocket endpoint associated with [domain], by using the domain's Web-host Metadata. |