I'm using libzmq 3.2.3
On Wed, May 22, 2013 at 12:05 PM, Trevor Bernard <[email protected]>wrote: > What should the functionality be for the following scenario? > > ;; Conceptually, assume push and pull sockets are different processes > (def ctx (zcontext 1)) > (def ctx2 (zcontext 2)) > > (def push (-> (socket ctx :push) > (connect "tcp://localhost:12345"))) > (send push (.getBytes "msg1")) ;; true > (send push (.getBytes "msg2")) ;; true > > > (def pull (-> (socket ctx2 :pull) > (bind "tcp://*:12345"))) > > ;; receive queued messages as expected > (String. (recv pull)) "msg1" > (String. (recv pull)) "msg2" > (close pull) ;; simulate loss of connection > > (send push (.getBytes "msg3")) > (send push (.getBytes "msg4")) > (send push (.getBytes "msg5")) > > (def pull2 (-> (socket ctx2 :pull) > (bind "tcp://*:12345"))) > > ;; Again, received queued messages > (String. (recv pull2)) ;; "msg3" > (String. (recv pull2)) ;; "msg4" > (String. (recv pull2)) ;; "msg5" > (close pull2) > > (send push (.getBytes "msg6")) ;; true > (send push (.getBytes "msg7")) ;; true > (send push (.getBytes "msg8")) ;; true > > ;; Simulate failover to a new endpoint > (disconnect push "tcp://localhost:12345") > (connect push "tcp://localhost:1337") > > (send push (.getBytes "msg9")) ;; true > (def pull3 (-> (socket ctx2 :pull) > (bind "tcp://*:1337"))) > > ;; Expected to receive msg6-9 > (String. (recv pull3)) ;; "msg9" > > I expected the messages to be queued up and to receive msg6..9 but only > received msg9. Are messages 6-8 lost? > > -Trev >
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
