Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Sep 27 17:42
    L0PiTaL opened #1621
  • Sep 22 06:11
    waxwax0099 opened #1620
  • Sep 19 20:28
    JochenBaier opened #1619
  • Sep 16 18:39
    kiufta opened #1618
  • Sep 12 06:45
    HKGY opened #1088
  • Sep 08 20:25
    lakshminareshk closed #1615
  • Sep 08 11:58
    lakshminareshk opened #1615
  • Aug 28 10:08
    chuanqi723 closed #1614
  • Aug 28 04:07
    chuanqi723 opened #1614
  • Aug 28 04:04
    chuanqi723 closed #1612
  • Aug 22 08:21
    asuper0 opened #1613
  • Aug 20 16:12
    gdamore labeled #1081
  • Aug 20 16:10
    gdamore closed #1083
  • Aug 20 16:10

    gdamore on master

    fixes #1083 Missing a markdown … (compare)

  • Aug 20 16:06
    gdamore transferred #1086
  • Aug 20 16:06
    gdamore edited #1612
  • Aug 20 16:06
    chuanqi723 opened #1612
  • Aug 20 16:05
    gdamore closed #1082
  • Aug 20 16:05

    gdamore on master

    Fixed #1082 (#1085) (compare)

  • Aug 20 16:00

    gdamore on master

    Markup fix (compare)

while telnet is bidirectional
Garrett D'Amore
Req rep.
And I don’t really watch this channel.
Basically one to many is supported with any protocol except pair.
thanks. I will try it.
Cody Piersall
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?
Garrett D'Amore
I don’t really use Gitter anymore.
But the answer to your question is no.
Gary Stuart
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
Nate Kent
@gstuartml_gitlab This channel isn't really alive anymore - it's moved to Discord
Obei Sideg
Is there way to check number of message in message queue or at least is empty in pub/sub pattern?
Michael Riesch
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)?
Garrett D'Amore
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.
Garrett D'Amore
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
Garrett D'Amore
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"?
the document page title , such as "nng_pub_open(3) " , what is the meaning "(3)"
nng(7), what is the meaning "(7)"
Garrett D'Amore
Those are man page sections. Section 3 is for library functions. Section 7 is for device drivers. This is ancient UNIX (and also Linux history).
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"?
Garrett D'Amore
The protocols are versioned. For pub and sub there is only version zero at this time.

Hi! I have a rep TCP server which implements a small stateful protocol using a fixed pool of nng_aio/nng_ctx.

Ideally I'd like to drop (RST) peers which commit a protocol violation: free up the connection and context for another peer. I'm feeling that perhaps that this is a TCP-transport-specific idea and I'm not too sure how to marry what I'm trying to do with how the nng APIs are designed to be used.

One idea I've had has been to approach it in the same way as the REST server example, which involves closing and then recreating the nng_ctx for each new client.


  1. Is it possible to do what I want (drop clients and free up the context) with a fixed pool of nng_ctx?
  2. If not, are there any example aio programs which demonstrate how to close/reuse/create contexts against a server socket? I'm not seeing how to do it without the benefit of something like nng_http_server which the REST example uses. Or just a description of the pattern more broadly.

Thank you for the great library!

Garrett D'Amore
We have moved off of gitter. Mostly because its client support is awful.
If youre worried about SP layer protocol violations - don’t. NNG takes care of it for you.
You don’t have to link disconnects to peers though. If you have a message and want to disconnect the peer that sent it you can get the pipe from the message and then call nng_pipe_close on it. Nothing prevents the peer from reconnecting however.
1 reply
We are using discord for our chat these days.
I have query regarding nanomsg ----do this support UDP?
In case of binary message how Topic name works?
Xu Jingxin
I use bus protocol to construct a mesh of services, however, not every service is interested in all topics. So, to reduce the network overhead, is there a way to support subscribe(topic) in bus protocol?
I have created an issue here, hope someone can help me. nanomsg/nng#1568
Mikhail Kagalenko
Hello, what is required to build nng on Windows 7?
Visual Studio works. Otherwise its cmake and a compiler (eg clang) and either nmake or ninja (prefererred)