package ws-server
WebSocket server
Install
Dune Dependency
Authors
Maintainers
Sources
0.1.tar.gz
md5=178fac2ab1b9a2cabe358a695282f4d2
sha512=77585a539320ef8a71f4d25f825ac84432934c49e6d4b7ae4f90ad4960aa44c31ceea8fe52c123364de937d3cb490ccd564d131f02b7eaca9f42795b86a1c70d
Description
Published: 06 Aug 2020
README
ws-server
Library for simple WebSocket servers (wrapper for ocaml-websocket).
Example
let string_of_client client =
client |> Ws.Client.id |> Ws.Client.Id.to_int |> string_of_int
let server = Ws.Server.create ~port:3000
let on_connect client =
Ws.Client.send client {|Commands:
/msg [user] [message]
/list
/quit|}
let handler client message =
match String.split_on_char ' ' message with
| [ "/list" ] ->
let online =
Ws.Server.clients server |> List.map string_of_client
|> String.concat "\n"
in
Ws.Client.send client ("Online:\n" ^ online)
| [ "/quit" ] -> Ws.Server.close server client
| "/msg" :: user :: content -> (
let target =
match int_of_string_opt user with
| Some n -> Ws.(Server.get server (Client.Id.of_int n))
| None -> None
in
match target with
| None -> Ws.Client.send client "No user with that ID exists"
| Some target ->
Ws.Client.send target
(Printf.sprintf "Message from %s: %s" (string_of_client client)
(String.concat " " content)) )
| broadcast_message ->
Ws.Server.broadcast_to_others server client
(Printf.sprintf "%s: %s" (string_of_client client)
(String.concat " " broadcast_message))
let () = Lwt_main.run (Ws.Server.run ~on_connect server handler)
Dependencies (4)
- websocket-lwt-unix
- lwt_ppx
-
dune
>= "2.0"
-
ocaml
>= "4.06"
Dev Dependencies
None
Used by
None
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page