package eliom
Install
Dune Dependency
Authors
Maintainers
Sources
md5=a989128ffd2ffd4a74b17233cd0a4b46
sha512=ee76f43609fc33aad96758e9a9698ec517aa92eaaf4575e3e4b43aaa34b3659f0403370d1c8a20c605465802375cbdf7f98a0d086cb3c73e86d19115064f7f15
doc/eliom.server/Eliom_notif/module-type-S/index.html
Module type Eliom_notif.S
Source
Signature of the functors Eliom_notif.Make
and Eliom_notif.Make_Simple
.
S
has two types of notifications (server_notif
and client_notif
) because we might need to serialise and deserialise the notification twice (in case of a multi-server set-up). Once for broadcasting it to other servers and once for transferring it to the client (after possibly transforming the message using information which is only locally available (see prepare
below).
identity
is the type of values used to differentiate one listener from another. Typically it will be a user, but it could also for instance be a chat window.
key
is the type of values designating a given resource.
server notification type; Can be different from client_notif
.
client notification type; Can be different from server_notif
.
Initialise the notification module for the current client. This function needs to be called before using most other functions of this module. It isn't called implicitly during module instantiation because it relies on identity data which might not be available yet.
Deinitialise/deactivate the notification module for the current client.
Call notify key n
to send a notification n
to all clients currently listening on data referenced by key
.
If ~notfor
is `Me
, notification will not be sent to the tab currently doing the request (the one which caused the notification to happen). Note that if notify
is called with ~notfor:`Me
outside of a request it will fail. If it is `Id id
it won't be sent to the destination defined by id
.
Returns the client react event.
'a Eliom_react.Down.t
= 'a React.E.t
on client side.
Map a function on this event to react to notifications from the server. For example:
let%client handle_notification some_stuff ev = ...
let%server something some_stuff = ignore %client (ignore (React.E.map (handle_notification ~%some_stuff) ~%(Notif_module.client_ev ()) ) : unit)
Call clean ()
to clear the tables from empty data.