From 92e8596b78982885803994b50c6b35f73f7a403e Mon Sep 17 00:00:00 2001 From: Hayleigh Thompson Date: Tue, 19 Sep 2023 23:40:03 +0100 Subject: :recycle: So long monorepo. --- compat/lustre_websocket/README.md | 51 --------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 compat/lustre_websocket/README.md (limited to 'compat/lustre_websocket/README.md') diff --git a/compat/lustre_websocket/README.md b/compat/lustre_websocket/README.md deleted file mode 100644 index 5e30c8e..0000000 --- a/compat/lustre_websocket/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# lustre_websocket - -[![Package Version](https://img.shields.io/hexpm/v/lustre_websocket)](https://hex.pm/packages/lustre_websocket) -[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/lustre_websocket/) - -Use websockets from your `lustre` application! - -## Quick start - -Add to your Gleam project: - -```sh -gleam add lustre_websocket -``` - -Typical usage looks like -``` -import lustre_websocket as ws - -pub type Msg { - WsWrapper(ws.WebSocketEvent) -} - -let init = #(Model(None), ws.init("/path", WsWrapper)) -``` -and then you pass `init` as first argument to `lustre.application`. -But you can create a socket at any time, esp. re-create it after it is closed by the server. - -The events can be handled like this: -``` -update(model, msg) { - case msg { - WsWrapper(OnOpen(socket)) -> #(Model(..model, ws: Some(socket)), ws.send(socket, "client-init")) - WsWrapper(OnMessage(msg)) -> todo - WsWrapper(OnClose(reason)) -> #(Model(..model, ws: None), cmd.none()) - } -} -``` -which also demonstrates how you send a text message over the socket. - -### Caveat - -*This package cannot handle more than 1 socket on a server endpoint* - -### TODO: - * support protocol choice, including one websocket per protocol per endpoint - * support binary data - * allow client to close the socket - * provide errors to the application, when I have a clue on what those might actually be - * prevent sending over closed sockets - * maybe auto-reopen sockets that were closed because of Normal -- cgit v1.2.3