send_aio | R Documentation |
Send data asynchronously over a connection (Socket, Context, Stream or Pipe).
send_aio(con, data, mode = c("serial", "raw"), timeout = NULL, pipe = 0L)
con |
a Socket, Context or Stream. |
data |
an object (a vector, if |
mode |
[default 'serial'] character value or integer equivalent -
either |
timeout |
[default NULL] integer value in milliseconds or NULL, which applies a socket-specific default, usually the same as no timeout. |
pipe |
[default 0L] only applicable to Sockets using the 'poly' protocol, an integer pipe ID if directing the send via a specific pipe. |
Async send is always non-blocking and returns a 'sendAio' immediately.
For a 'sendAio', the send result is available at $result
. An 'unresolved'
logical NA is returned if the async operation is yet to complete. The
resolved value will be zero on success, or else an integer error code.
To wait for and check the result of the send operation, use call_aio()
on
the returned 'sendAio' object.
Alternatively, to stop the async operation, use stop_aio()
.
A 'sendAio' (object of class 'sendAio') (invisibly).
The default mode "serial"
sends serialised R objects to ensure perfect
reproducibility within R. When receiving, the corresponding mode "serial"
should be used. Custom serialization and unserialization functions for
reference objects may be enabled by the function serial_config()
.
Mode "raw"
sends atomic vectors of any type as a raw byte vector, and must
be used when interfacing with external applications or raw system sockets,
where R serialization is not in use. When receiving, the mode corresponding
to the vector sent should be used.
send()
for synchronous send.
pub <- socket("pub", dial = "inproc://nanonext")
res <- send_aio(pub, data.frame(a = 1, b = 2), timeout = 100)
res
res$result
res <- send_aio(pub, "example message", mode = "raw", timeout = 100)
call_aio(res)$result
close(pub)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.