Socket Transport (Experimental)
Description
The socket transport supports communication between
peers across arbitrary BSD sockets, such as those that are
created with nng_socket_pair
.
This transport only supports listeners,
using nng_listener_create
.
note
Attempts to create dialers using this transport will result in NNG_ENOTSUP
.
The socket file descriptor is passed to the listener using
the NNG_OPT_SOCKET_FD
option (as an integer).
Setting this option will cause the listener to create a pipe
backed by the file descriptor.
The protocol between peers using this transport is compatible with the protocol used for the tcp transport, but this is an implementation detail and subject to change without notice. 1
note
This transport is experimental, and at present is only supported on POSIX platforms. 2
Registration
No special action is necessary to register this transport.
URI Format
This transport uses the URL socket://
, without further qualification.
Socket Address
The socket address will be of family NNG_AF_UNSPEC
.
There are no further socket details available.
Transport Options
The following transport option is available:
NNG_OPT_SOCKET_FD
:
(int)
This is a write-only option, that may be set multiple times on a listener. Each time this is set, the listener will create a pipe backed by the given file descriptor passed as an argument.
Additionally, the following options may be supported on pipes when the platform supports them:
1: Specifically it is not compatible with the ipc transport.
2: Windows lacks a suitable socketpair
equivalent function we could use.