Ahh ok of course. This works much better. What if I have a setup where I in client A in reality have a lot of threads where each thread needs a type of stream of data and in B i have connected some sensors. These sensors needs to be streamed from B to A such that a group of threads needs sensor X another group of threads in A needs output of sensor Y etc. What would be the best type of architecture for this type of setup?
On Sat, Aug 18, 2018, 10:03 Mykola Ostrovskyy via zeromq-dev < [email protected]> wrote: > Michael, > > ZMQ sockets are not thread safe. Each thread should use a separate socket, > so you need a pair of sockets in each test script. > > Also PAIR is a rather special-purpose type of socket mostly used in scope > of one process. > > I would recommend to use two PUSH-PULL channels for asynchronous > communication between peers. Something like: > > ClientA > RecvThread > recvsocket.bind(PULL, 9998) > SendThread > sendsocket.connect(PUSH, 9999) > > ClientB > RecvThread > recvsocket.bind(PULL, 9999) > SendThread > sendsocket.connect(PUSH, 9998) > > > Regards, > Mykola > > > сб, 18 авг. 2018 г. в 7:18, Michael Hansen <[email protected]>: > >> Hi, >> I am not sure I see where there is missing some indentation. >> To me it looks okay regarding indentation. >> rtx is just a def with a while loop where recv is called and printed in >> every iteration. >> >> On Sat, Aug 18, 2018 at 12:44 AM, Tomer Eliyahu <[email protected]> >> wrote: >> >>> Aren't you missing indentation in rtx functions? >>> >>> On Sat, Aug 18, 2018, 01:20 Michael Hansen <[email protected]> >>> wrote: >>> >>>> Hello, I am quite new to ZMQ which seems like a really nice library. >>>> However i seem to be running into some issues already. >>>> I have to make a setup with just 2 peers who can send to each other. >>>> There is no order in how the clients communicate - however in generel >>>> data flows >>>> from one to the other and commands from the other to the first. >>>> >>>> I made a small test as below but communication seem to hang up and only >>>> one part is sending. >>>> Also - sometimes when i try to run this, i get the following error: >>>> >>>> 'Resource temporarily unavailable (bundled/zeromq/src/signaler.cpp:301) >>>> >>>> Abort trap: 6' >>>> >>>> >>>> Here are the 2 components, what am I doing wrong? >>>> >>>> >>>> >>>> >>>> # ============== >>>> # = SERVER A >>>> # ============== >>>> >>>> >>>> import threading >>>> import time >>>> import zmq >>>> >>>> >>>> port = 9999 >>>> context = zmq.Context() >>>> socket = context.socket(zmq.PAIR) >>>> socket.connect("tcp://127.0.0.1:%s" % port) >>>> >>>> >>>> def rtx(socket): >>>> print('A started receiving...') >>>> while 1: >>>> print(b'A RECEIVED : %s' % socket.recv()) >>>> >>>> >>>> def ttx(socket): >>>> print('A started transmitting...') >>>> while 1: >>>> socket.send(b'Message from A') >>>> time.sleep(1) >>>> >>>> >>>> threading.Thread(target=rtx, args=(socket,)).start() >>>> threading.Thread(target=ttx, args=(socket,)).start() >>>> >>>> >>>> >>>> >>>> # ============== >>>> # = SERVER B >>>> # ============== >>>> >>>> >>>> import threading >>>> import time >>>> import zmq >>>> >>>> >>>> port = 9999 >>>> context = zmq.Context() >>>> socket = context.socket(zmq.PAIR) >>>> socket.bind("tcp://127.0.0.1:%s" % port) >>>> >>>> >>>> def rtx(socket): >>>> print('B started receiving...') >>>> while 1: >>>> print(b'B RECEIVED : %s' % socket.recv()) >>>> >>>> >>>> def ttx(socket): >>>> print('B started transmitting...') >>>> while 1: >>>> socket.send(b'Message from B') >>>> time.sleep(1) >>>> >>>> >>>> threading.Thread(target=rtx, args=(socket,)).start() >>>> threading.Thread(target=ttx, args=(socket,)).start() >>>> >>>> _______________________________________________ >>>> zeromq-dev mailing list >>>> [email protected] >>>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev >>>> >>> >>> _______________________________________________ >>> zeromq-dev mailing list >>> [email protected] >>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev >>> >>> >> _______________________________________________ >> zeromq-dev mailing list >> [email protected] >> https://lists.zeromq.org/mailman/listinfo/zeromq-dev >> > _______________________________________________ > zeromq-dev mailing list > [email protected] > https://lists.zeromq.org/mailman/listinfo/zeromq-dev >
_______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
