[zeromq-dev] Issue when using pub / sub after any other pair

Pavel Chlupáček chlupacek at gmail.com
Thu May 19 16:11:16 CEST 2011

Martin this is the scala snippet: 

  it("Will correctly parse PUB/SUB pair") {
      val zc = ZMQ.context(1)
      val socketPub = zc.socket(ZMQ.PUB)
      val socketSub = zc.socket(ZMQ.SUB)

      try {
        val poller = zc.poller(1)
        val idxSub = poller.register(socketSub, ZMQ.Poller.POLLIN | ZMQ.Poller.POLLERR)
        val zm = ZMQMessage("Test", serializer).sendTo(socketPub)

        assert(poller.poll(1000) > 0 && poller.pollin(idxSub), "NO message in queue? ")
        ZMQMessage.readNext(socketSub, serializer) match {
          case Some(zmqm) => {
            assert(zmqm.addresses.isEmpty, "Addresses present?")
            assert(zmqm.content == "Test", "Content is not same")
          case None => fail("Message was not read")

      } finally {


so I send on BIND side of connection, which is Pub side as well. 

I get false assertion on "NO message in queue?"

Does that makes a sense? 


On May 19, 2011, at 4:05 PM, Martin Sustrik wrote:

> On 05/19/2011 04:03 PM, Pavel Chlupáček wrote:
>> Well doesn't seem so, as it is in one single thread. So the bind, connect, send, rcv after each other in sequence.
> Note that connect is async. Are you sending on bind or connect side of the connection?
> Martin

More information about the zeromq-dev mailing list