Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Eliom_comet

module Eliom_comet : sig..end

Handle unsolicited server to client communications.

See the Eliom manual for a detailed introduction to the concept of client server communication.


When the page is not active the client stops making comet requests to the server, implying that the client can't be notified by the server anymore. The activity status is changed when the page is focused or unfocused.

To stop receiving inputs from a channel, use Lwt.cancel on a thread waiting for data. For instance, if you iterate with let t = Lwt_stream.iter f %channel calling Lwt.cancel t will close the channel.

exception Channel_full

Channel_full is raised when trying to read on a channel marked full by the server. It is not possible to read anything else from a full channel.

exception Channel_closed

Channel_closed is raised when reading on a channel and the server side of the application closed channel ( the server was restarted, a session was closed, or a stateless channel was garbage collected).

val is_active : unit -> [ `Active | `Idle | `Inactive ]

is_active () returns the current activity state

val activate : unit -> unit

if the client is inactive activate () launch a new xhr connection to start receiving server messages

val set_handle_exn_function : (?exn:exn -> unit -> unit Lwt.t) -> unit

Makes possible to customize the function called when comet fails for unknown reason. The usual practice is to warn the user and ask to reload the page. This function is not called when a channel is full or closed. It is called only once, for the first exception.

module Configuration : sig..end

Change the reactivity of channels.

module Channel : sig..end