diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-10-26 13:14:07 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-10-26 15:33:40 -0700 |
| commit | 2ac45d7d78aec9a7387201a90fe4a9d11cd86df8 (patch) | |
| tree | d315a1a3f719f3878b257d454d92e5046ff71ff9 /docs/nng_sub.adoc | |
| parent | 46ca4756a09d015298b310cd482f2e39d9a034db (diff) | |
| download | nng-2ac45d7d78aec9a7387201a90fe4a9d11cd86df8.tar.gz nng-2ac45d7d78aec9a7387201a90fe4a9d11cd86df8.tar.bz2 nng-2ac45d7d78aec9a7387201a90fe4a9d11cd86df8.zip | |
Documentation updates.
This adds a few man pages, fixes the content and formatting on a few
others.
It also adds two utility scripts for me to use, publish.sh, which I
use to publish updates to the gh-pages branch, and preview.sh, which
I use to look at markup without cluttering my work directory.
Diffstat (limited to 'docs/nng_sub.adoc')
| -rw-r--r-- | docs/nng_sub.adoc | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/docs/nng_sub.adoc b/docs/nng_sub.adoc new file mode 100644 index 00000000..9aa00bdb --- /dev/null +++ b/docs/nng_sub.adoc @@ -0,0 +1,110 @@ +nng_sub(7) +========== +:doctype: manpage +:manmanual: nng +:mansource: nng +:icons: font +:source-highlighter: pygments +:copyright: Copyright 2017 Garrett D'Amore <garrett@damore.org> \ + Copyright 2017 Capitar IT Group BV <info@capitar.com> \ + This software is supplied under the terms of the MIT License, a \ + copy of which should be located in the distribution where this \ + file was obtained (LICENSE.txt). A copy of the license may also \ + be found online at https://opensource.org/licenses/MIT. + +NAME +---- +nng_sub - subscriber protocol + +SYNOPSIS +-------- + +[source,c] +---------- +#include <nng/protocol/pubsub/pubsub.h> + +#define NNG_PROTO_SUB_V0 33 +#define NNG_PROTO_SUB NNG_PROTO_SUB_V0 + +int nng_sub_open(nng_socket *s); +int nng_sub0_open (nng_socket *s); + +---------- + +DESCRIPTION +----------- + +The _nng_sub_ protocol is one half of a publisher/subscriber pattern. +In this pattern, a publisher sends data, which is broadcast to all +subscribers. The subscribing applications only see the data to which +they have subscribed. + +The _nng_sub_ protocol is the subscriber side, and the +<<nng_pub.adoc#,nng_pub(7)>> protocol is the publisher side. + +NOTE: In this implementation, the publisher delivers all messages to all +subscribers. The subscribers maintain their own subscriptions, and filter +them locally. Thus, this pattern should not be used in an attempt to +reduce bandwidth consumption. + +The topics that subscribers subscribe to is just the first part of +the message body. Applications should construct their messages +accordingly. + +Socket Operations +~~~~~~~~~~~~~~~~~ + +The `nng_sub_open()` call creates a subscriber socket. This socket +may be used to receive messages, but is unable to send them. Attempts +to send messages will result in `NNG_ENOTSUP`. + +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 following protocol-specific options are available. + +`NNG_OPT_SUB_SUBSCRIBE`:: + + This option registers a topic that the subscriber is interested in. + The option is write-only, and takes an array of bytes, of arbitrary size. + Each incoming message is checked against the list of subscribed topics. + If the body begins with the entire set of bytes in the topic, then the + message is accepted. If no topic matches, then the message is + discarded. ++ +TIP: To receive all messages, an empty topic (zero length) can be used. + +`NNG_OPT_SUB_UNSUBSCRIBE`:: + + This option, also read-only, removes a topic from the subscription list. + Note that if the topic was not previously subscribed to with + `NNG_OPT_SUB_SUBSCRIBE` then an `NNG_ENOENT` error will result. + +Protocol Headers +~~~~~~~~~~~~~~~~ + +The _nng_sub_ protocol has no protocol-specific headers. + +AUTHORS +------- +link:mailto:garrett@damore.org[Garrett D'Amore] + +SEE ALSO +-------- +<<nng.adoc#,nng(7)>> +<<nng_pub.adoc#,nng_pub(7)>> + +COPYRIGHT +--------- + +Copyright 2017 mailto:garrett@damore.org[Garrett D'Amore] + +Copyright 2017 mailto:info@capitar.com[Capitar IT Group BV] + +This document is supplied under the terms of the +https://opensource.org/licenses/LICENSE.txt[MIT License]. |
