Multi-threaded, console-based, 2-way instant messaging system with authentication, based on NNG scalability protocols.
messenger(url, auth = NULL)
Invisible NULL.
a URL to connect to, specifying the transport and address as a character string e.g. 'tcp://127.0.0.1:5555' (see transports).
[default NULL] an R object (possessed by both parties) which serves as a pre-shared key on which to authenticate the communication. Note: the object is never sent, only a random subset of its SHA256 hash.
Type outgoing messages and hit return to send.
The timestamps of outgoing messages are prefixed by >
and that of
incoming messages by <
.
:q
is the command to quit.
Both parties must supply the same argument for 'auth', otherwise the party trying to connect will receive an 'authentication error' and be disconnected immediately.
NOTE: This is currently a proof of concept with an experimental authentication protocol and should not be used for critical applications.