open Lwt.Syntax let () = (* Echo is a websocket that... echoes you stuff. *) let stream, push = Portal_ws.ws_stream "wss://echo.websocket.org" in push (Some "great text"); push (Some "other text"); push (Some "yet another text"); push (Some "BYE"); Lwt.async @@ fun () -> let* server = Portal_ws.ws_endpoint "egregore.fun" in let+ _ = Lwt_stream.iter (fun greetings -> match greetings with (* When the websocket sends "BYE", we close. *) | "BYE" -> print_endline "CLOSING BYE"; push None | hello -> print_endline ("> " ^ hello)) stream in print_endline server