Not that strange, the connect is asynchronous, so there is absolutely
no guarantee on when it actually happens, by design.

In production, if you need synch, either use an out-of-band control
channel (eg: req-rep) or switch to XPUB, which gives you notifications
of subscribe/unsubscribe.

On 23 September 2016 at 13:16, Aurélien .... <[email protected]> wrote:
> Hi,
>
> I had to increase the "sleep" to 5 seconds and it worked.
>
> Strange !
>
> On Fri, Sep 23, 2016 at 10:00 AM, Aurélien .... <[email protected]> wrote:
>>
>> I tried with 127.0.0.1 on bind and connect functions, it didn't worked.
>>
>> I also tried on Linux (Ubuntu 16.04), same result.
>>
>> Very strange !
>>
>> On Thu, Sep 22, 2016 at 7:12 PM, Luca Boccassi <[email protected]>
>> wrote:
>>>
>>> Windows has some weirdness on the localhost I think, try to avoid the
>>> wildcard and bind and connect to 127.0.0.1
>>>
>>> On 22 September 2016 at 17:57, Aurélien .... <[email protected]> wrote:
>>> > Thank you for your replies.
>>> >
>>> > I tried with that :
>>> >
>>> > zmq::socket_t subscriber(context, ZMQ_SUB);
>>> > subscriber.connect("tcp://localhost:5563");
>>> > Sleep(1000);
>>> > subscriber.setsockopt(ZMQ_SUBSCRIBE, "A");
>>> > Sleep(1000);
>>> >
>>> > And it stiil does not work.
>>> >
>>> > I also tried with the ZMQ version 4.2.0, same result.
>>> >
>>> > I forgot to tell that I'm using the static version of ZMQ (with the
>>> > ZMQ_STATIC preprocessor variable), maybe it has something to do ?
>>> >
>>> > Thank you,
>>> >
>>> > Kin
>>> >
>>> > On Thu, Sep 22, 2016 at 6:28 PM, Dimos Stamatakis <[email protected]>
>>> > wrote:
>>> >>
>>> >> That's right. I remember reading this on the instructions on how to
>>> >> build
>>> >> a pub-sub system in ZeroMQ. There is limited availability, since as
>>> >> Ian said
>>> >> they wanted to build something fast and make it reliable, rather than
>>> >> building something reliable and make it fast.
>>> >>
>>> >> Dimos
>>> >>
>>> >> On Thu, Sep 22, 2016 at 12:21 PM, Colin Ingarfield
>>> >> <[email protected]>
>>> >> wrote:
>>> >>>
>>> >>> The subscriber connect() call is asynchronous.  It's possible the
>>> >>> publish
>>> >>> messages are sent before the subscribe socket connects and
>>> >>> establishes its
>>> >>> subscription.
>>> >>>
>>> >>> Try sleeping for 100ms or so after the connect call, before the loop.
>>> >>>
>>> >>>
>>> >>> On 9/22/16 11:10 AM, Aurélien .... wrote:
>>> >>>
>>> >>> Hi,
>>> >>>
>>> >>> I'm trying to make a simple PUB / SUB test.
>>> >>>
>>> >>> First, I created the publisher, then the subscriber with a message to
>>> >>> subscribe.
>>> >>>
>>> >>> Second, I send some messages from the publisher and I try to retreive
>>> >>> them from the subscriber.
>>> >>>
>>> >>> The code compiles but the subscriber does not receive any data.
>>> >>>
>>> >>> My config is :
>>> >>> - Windows 7 / Visual Studio 2015
>>> >>> - Compile in /MTd (debug)
>>> >>> - ZMQ Version : 4.1.4
>>> >>>
>>> >>> Here is the code :
>>> >>>
>>> >>> #include "zhelpers.hpp"
>>> >>>
>>> >>> void TestPubSub()
>>> >>> {
>>> >>> zmq::context_t context;
>>> >>> zmq::socket_t publisher(context, ZMQ_PUB);
>>> >>> zmq_bind(publisher, "tcp://*:5563");
>>> >>>
>>> >>> zmq::socket_t subscriber(context, ZMQ_SUB);
>>> >>> subscriber.connect("tcp://localhost:5563");
>>> >>> subscriber.setsockopt(ZMQ_SUBSCRIBE, "A");
>>> >>>
>>> >>> while (1) {
>>> >>> //  Write two messages, each with an envelope and content
>>> >>> s_sendmore(publisher, "A");
>>> >>> s_send(publisher, "We don't want to see this");
>>> >>> s_sendmore(publisher, "B");
>>> >>> s_send(publisher, "We would like to see this");
>>> >>>
>>> >>> //  Read envelope with address
>>> >>> std::string addr = s_recv(subscriber); // block here, waiting for
>>> >>> messages which does not come
>>> >>> //  Read message contents
>>> >>> std::string contents = s_recv(subscriber);
>>> >>> }
>>> >>> }
>>> >>>
>>> >>> int main(int argc, char** argv)
>>> >>> {
>>> >>> TestPubSub();
>>> >>> return 0;
>>> >>> }
>>> >>>
>>> >>> Can you tel me where I'm wrong ?
>>> >>>
>>> >>> Thank you very much,
>>> >>>
>>> >>> Kin
>>> >>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> zeromq-dev mailing list
>>> >>> [email protected]
>>> >>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>> >>>
>>> >>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> zeromq-dev mailing list
>>> >>> [email protected]
>>> >>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>> >>
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> zeromq-dev mailing list
>>> >> [email protected]
>>> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > zeromq-dev mailing list
>>> > [email protected]
>>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> [email protected]
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>
>
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to