Availability:
:- use_module(library(http/websocket)).
- text(+Text)
- Send a text message. Text is serialized using write/1.
- binary(+Content)
- As
text(+Text)
, but all character codes produced by Content must be in the range [0..255]. Typically, Content will be an atom or string holding binary data. - prolog(+Term)
- Send a Prolog term as a text message. Text is serialized using write_canonical/1.
- json(+JSON)
- Send the Prolog representation of a JSON term using json_write_dict/2.
- string(+Text)
- Same as
text(+Text)
, provided for consistency. - close(+Code, +Text)
- Send a close message. Code is 1000 for normal close. See websocket documentation for other values.
- Dict
- A dict that minimally contains an
opcode
key. Other keys used are:format
:
Format- Serialization format used for Message.data. Format
is one of
string
,prolog
orjson
. See ws_receive/3. data
:
Term- If this key is present, it is serialized according to Message.format. Otherwise it is serialized using write/1, which implies that string and atoms are just sent verbatim.
Note that ws_start_message/3 does not unlock the stream. This is done by ws_send/1. This implies that multiple threads can use ws_send/2 and the messages are properly serialized.
- To be done
- Provide serialization details using options.