diff --git a/tiny_httpd/Tiny_httpd_ws/With_lock/index.html b/tiny_httpd/Tiny_httpd_ws/With_lock/index.html new file mode 100644 index 00000000..fa34f9a7 --- /dev/null +++ b/tiny_httpd/Tiny_httpd_ws/With_lock/index.html @@ -0,0 +1,2 @@ + +With_lock (tiny_httpd.Tiny_httpd_ws.With_lock)

Module Tiny_httpd_ws.With_lock

Synchronization primitive used to allow both the reader to reply to "ping", and the handler to send messages, without stepping on each other's toes.

type t = {
  1. with_lock : 'a. (unit -> 'a) -> 'a;
}

A primitive to run the callback in a critical section where others cannot run at the same time.

The default is a mutex, but that works poorly with thread pools so it's possible to use a semaphore or a cooperative mutex instead.

type builder = unit -> t
val default_builder : builder

Lock using Mutex.

diff --git a/tiny_httpd/Tiny_httpd_ws/index.html b/tiny_httpd/Tiny_httpd_ws/index.html index 486f3114..e477653f 100644 --- a/tiny_httpd/Tiny_httpd_ws/index.html +++ b/tiny_httpd/Tiny_httpd_ws/index.html @@ -1,18 +1,20 @@ -Tiny_httpd_ws (tiny_httpd.Tiny_httpd_ws)

Module Tiny_httpd_ws

Websockets for Tiny_httpd.

This sub-library (tiny_httpd.ws) exports a small implementation for a websocket server. It has no additional dependencies.

type handler = +Tiny_httpd_ws (tiny_httpd.Tiny_httpd_ws)

Module Tiny_httpd_ws

Websockets for Tiny_httpd.

This sub-library (tiny_httpd.ws) exports a small implementation for a websocket server. It has no additional dependencies.

module With_lock : sig ... end

Synchronization primitive used to allow both the reader to reply to "ping", and the handler to send messages, without stepping on each other's toes.

Websocket handler

Upgrade a byte stream to the websocket framing protocol.

exception Close_connection

Exception that can be raised from IOs inside the handler, when the connection is closed from underneath.

Upgrade a byte stream to the websocket framing protocol.

  • parameter with_lock

    if provided, use this to prevent reader and writer to compete on sending frames. since NEXT_RELEASE.

exception Close_connection

Exception that can be raised from IOs inside the handler, when the connection is closed from underneath.

val add_route_handler : ?accept:(unit Tiny_httpd_core.Request.t -> (unit, int * string) result) -> ?accept_ws_protocol:(string -> bool) -> ?middlewares:Tiny_httpd_core.Server.Head_middleware.t list -> + ?with_lock:With_lock.builder -> Tiny_httpd_core.Server.t -> (Tiny_httpd_core.Server.upgrade_handler, Tiny_httpd_core.Server.upgrade_handler) Tiny_httpd_core.Route.t -> handler -> - unit

Add a route handler for a websocket endpoint.

  • parameter accept_ws_protocol

    decides whether this endpoint accepts the websocket protocol sent by the client. Default accepts everything.

+ unit

Add a route handler for a websocket endpoint.

  • parameter accept_ws_protocol

    decides whether this endpoint accepts the websocket protocol sent by the client. Default accepts everything.

  • parameter with_lock

    if provided, use this to synchronize writes between the frame reader (replies "pong" to "ping") and the handler emitting writes. since NEXT_RELEASE.