You have sub both listening and dialing, and pub only dialing.
The dialing sub won't connect.....
While the dialer vs. listener is orthogonal to pub vs sub, it's still the case that dialers can only connect to listeners, and that pub can only peer with sub (and vice versa)
So in your case, as you have one pub, and multiple subs, I'd probably make the pub the listener and the subs the dialers.
However, you could also use both subs as listeners (but on different ports, because only one thing can listen at a given TCP address), and then make the pub dial twice (once to each sub port)
You can use multiple --dial arguments in nngcat btw.
Ok, that makes sense. The 1 subscriber was only for my test setup. In reality I have a setup at the moment with 4 publishers and 1 subscriber (which is why the subscriber is the listener) and I was hoping to extend this in some cases easily to 4 publishers and 2 subscribers all on the same address/URL.
Regarding your remark about multiple --dial arguments, I overlooked that in the documentation. I'll read up on that first. Thx!
The above should have read "The 1 publisher was only for my test setup" obviously...
BTW: when using nngcat the dialing sub does report that it's connected: $ nngcat --sub0 --connect-ipc /tmp/test --format quoted -v -k --subscribe "" Connected to: ipc:////tmp/test"
Hi all, is this channel nng related? What can I use as a low latency, possibly UDP based transport? Is there a QUIC implementation for nng?
I want to write one 1-to-N model (similar to telnet server/client). 1 means one server, N means n clients. clients could connects to server at the same time. N usually is less than 20. what's the suggested protocol?
pub/sub I believe
pub/sub is unidirectional
while telnet is bidirectional
And I don’t really watch this channel.
Basically one to many is supported with any protocol except pair.
thanks. I will try it.
Req rep, and have the open as many contexts as max concurrent connections. Note that even with contexts, req/rep is still stateless, and you can't rely on a single context to be associated with a single client.
Is there any API to get remaining messages count in the queue?
I don’t really use Gitter anymore.
But the answer to your question is no.
Hi. I'm new here. If this has already been discussed, please point me to the appropriate location) I'm using NanoMsg for C++. (#include <nng/compat/nanomsg/nn.h> #include <nng/compat/nanomsg/bus.h>). I have setup pair communications, for multiple nodes, and it is communicating fine, provided I send character strings. If I send binary values, I receive matching input until it gets to a 0x00 value, and then all remaining values are 0x00. I have seen that the default mode is binary, but not in all cases. I have not succeeded in verifying this mode. Does this implementation support binary data? Do I need to do something different? Thanks
@gstuartml_gitlab This channel isn't really alive anymore - it's moved to Discord
Is there way to check number of message in message queue or at least is empty in pub/sub pattern?
Hello all, complete newbie here with two questions. 1) Have there been any efforts so far to use USB as transport medium?
And 2) is the nanomsg/nng project wire compatible with projects that base on ZeroMQ (In terms of protocols, I think this should be ZMTP/3.1)?
No and no. Sorry.
Hi,everyone. Who can compare PIPELINE pattern with PUBSUB pattern ,which one is more stable ?
Hello everyone, I would like to ask how to use Nanomsg on QT
@StudentXie you can use it With C++ library , it doesn't matter what framework u use
PIPELINE - aggregates messages from multiple sources and load balances them among many destinations.
can anybody tell me how to implement the PIPELINE . I tried many times ,but can't implement multiple sources and multiple destinations.
Please note that I rarely watch Gitter anymore. The conversation has moved to discord.
It’s really no different than any of the other patterns like req/rep in this regard.
What is confusing?
I'm writing it in java. with pipeline pattern, i can only implement one push node(bind), multiple pull node(connect).
or multiple push node (connect) one pull node(bind).
It's not exactly like what you said on the web
can u help me ?
if u can show me a demo, it would be better
You need to have multiple bind addresses. Each server for example should bind to its own address. Each client should then connect to each server. (So the client calls connect multiple times.)
You can swap server and client if you like. It doesn’t matter which side does connect and which does bind.
You cannot get many-to-many without having multiple bind addresses though. You can only bind one process to an address at a time (normally- there are some newer ways to get around that but they aren’t supported.)
OK, I got it , thanks a lot.
hello, the document protocol section mentioned:"The nng_pub0_open() function creates a pub version 0 socket and returns it at the location pointed to by s." , so, what is "version 0 socket"?