Create a connection reference. The connection is not set up yet by this
predicate. Callback is called on any received frame except
for
heart beat frames as below.
call(Callback, Command, Connection, Header, Body)
Where command is one of the commands below. Header is a
dict holding the STOMP frame header, where all values are strings except
for the 'content-length'
key value which is passed as an
integer.
Body is a string or, if the data is of the type
application/json
, a dict.
- connected
- A connection was established. Connection and Header are
valid.
- disconnected
- The connection was lost. Only Connection is valid.
- message
- A message arrived. All three arguments are valid. Body is a dict if the
content-type
of the message is
application/json
and a string otherwise.
- heartbeat
- A heartbeat was received. Only Connection is valid. This
callback is also called for each newline that follows a frame. These
newlines can be a heartbeat, but can also be additional newlines that
follow a frame.
- heartbeat_timeout
- No heartbeat was received. Only Connection is valid.
- error
- An error happened. All three arguments are valid and handled as
message
.
Note that stomp_teardown/1
causes the receiving and heartbeat thread to be signalled with abort/0.
Options processed:
- reconnect(+Bool)
- Try to reestablish the connection to the server if the connection is
lost. Default is
false
- connect_timeout(+Seconds)
- Maximum time to try and reestablish a connection. The default is
600
(10 minutes).
- json_options(+Options)
- Options passed to json_read_dict/3
to translate
application/json
content to Prolog. Default is []
.
Address | is a valid address for tcp_connect/3.
Normally a term
Host:Port, e.g., localhost:32772 . |
Host | is a path denoting the STOMP host.
Often just / . |
Headers | is a dict with STOMP headers used
for the CONNECT request. |
Connection | is an opaque ground term that
identifies the connection. |