Provided by: libnng-dev_1.9.0-1_amd64 bug

NAME

       nng_bus - bus protocol

SYNOPSIS

           #include <nng/protocol/bus0/bus.h>

DESCRIPTION

       The bus protocol provides for building mesh networks where every peer is connected to
       every other peer. In this protocol, each message sent by a node is sent to every one of
       its directly connected peers.

           Tip
           Messages are only sent to directly connected peers. This means that in the event that
           a peer is connected indirectly, it will not receive messages. When using this protocol
           to build mesh networks, it is therefore important that a fully-connected mesh network
           be constructed.

       All message delivery in this pattern is best-effort, which means that peers may not
       receive messages. Furthermore, delivery may occur to some, all, or none of the directly
       connected peers. (Messages are not delivered when peer nodes are unable to receive.)
       Hence, send operations will never block; instead if the message cannot be delivered for
       any reason it is discarded.

           Tip
           In order to minimize the likelihood of message loss, this protocol should not be used
           for high throughput communications. Furthermore, the more traffic in aggregate that
           occurs across the topology, the more likely that message loss is to occur.

   Socket Operations
       The nng_bus0_open() functions create a bus socket. This socket may be used to send and
       receive messages. Sending messages will attempt to deliver to each directly connected
       peer.

   Protocol Versions
       Only version 0 of this protocol is supported. (At the time of writing, no other versions
       of this protocol have been defined.)

   Protocol Options
       The bus protocol has no protocol-specific options.

   Protocol Headers
       When using a bus socket in raw mode, received messages will contain the incoming pipe ID
       as the sole element in the header. If a message containing such a header is sent using a
       raw bus socket, then, the message will be delivered to all connected pipes except the one
       identified in the header. This behavior is intended for use with device configurations
       consisting of just a single socket. Such configurations are useful in the creation of
       rebroadcasters, and this capability prevents a message from being routed back to its
       source. If no header is present, then a message is sent to all connected pipes.

       When using normal (cooked mode) bus sockets, no message headers are present.

SEE ALSO

       nng_bus_open(3), nng(7)

                                            2024-10-11                                 NNG_BUS(7)