Learn R Programming

nanonext (version 0.5.4)

dial: Dial an Address from a Socket

Description

Creates a new Dialer and binds it to a Socket.

Usage

dial(socket, url = "inproc://nanonext", autostart = TRUE)

Value

Invisibly, an integer exit code (zero on success). A new Dialer (object of class 'nanoDialer' and 'nano') is created and bound to the Socket or nano object if successful.

Arguments

socket

a Socket or nano object.

url

[default 'inproc://nanonext'] a URL to dial, specifying the transport and address as a character string e.g. 'inproc://anyvalue' or 'tcp://127.0.0.1:5555' (see transports).

autostart

[default TRUE] whether to start the dialer. Set to FALSE if you wish to set configuration options on the dialer as it is not generally possible to change these once started.

Further details

Dialers and Listeners are always associated with a single socket. A given socket may have multiple Listeners and/or multiple Dialers.

The client/server relationship described by dialer/listener is completely orthogonal to any similar relationship in the protocols. For example, a rep socket may use a dialer to connect to a listener on an req socket. This orthogonality can lead to innovative solutions to otherwise challenging communications problems.

Any configuration options on the dialer/listener should be set by setopt before starting the dialer/listener with start.

Dialers/Listeners may be destroyed by close. They are also closed when their associated socket is closed.

Details

To view all Dialers bound to a socket use $dialer on the socket, which returns a list of Dialer objects. To access any individual Dialer (e.g. to set options on it), index into the list e.g. $dialer[[1]] to return the first Dialer.

This function may be used to bind a new Dialer to a Socket, or else a nano object. If called on a nano object, the dialer is attached to the object rather than the socket for ease of access, e.g. $dialer[[1]] rather than $socket$dialer[[1]], but is otherwise equivalent to calling dial() on the object's socket directly.

A Dialer is an external pointer to a dialer object, which creates a single outgoing connection at a time. If the connection is broken, or fails, the dialer object will automatically attempt to reconnect, and will keep doing so until the dialer or socket is destroyed.

Examples

Run this code
socket <- socket("rep")
dial(socket, url = "tcp://127.0.0.1:6545", autostart = FALSE)
socket$dialer
start(socket$dialer[[1]])
socket$dialer
close(socket$dialer[[1]])
close(socket)

nano <- nano("bus")
dial(nano, url = "tcp://127.0.0.1:6546", autostart = FALSE)
nano$dialer
start(nano$dialer[[1]])
nano$dialer
close(nano$dialer[[1]])
nano$close()

Run the code above in your browser using DataLab