/
Sending/Receiving messages on the EventBus using ZMQ
Sending/Receiving messages on the EventBus using ZMQ
Receiving messages
Components inside Openvisulizer use messages to communicate with each other. There is a lot of messages. Subscribing to all of them will impact the latency of Openvisualizer and it's also likely that you are only interested in a subset of all messages.
You can use the control plane socket to set up which kind of messages you want to receive:
#!/usr/bin/env python import zmq context = zmq.Context() socket = context.socket(zmq.REQ) socket.connect ("tcp://localhost:50001") # To subscribe socket.send_json({"sub": ["bonjour"]}) # To unsubscribe # socket.send_json({"unsub": ["bonjour"]}) # you can even do both # socket.send_json({"sub": ["Hello"], "unsub": ["bonjour"]}) message = socket.recv() print(message) # You will get the subscriptions of the PUB socket {"subscriptions":["Hello"]}
Once this is set up, you can receive messages using a snippet of code similar to this :
#!/usr/bin/env python import zmq context = zmq.Context() subscriber = context.socket(zmq.SUB) subscriber.connect("tcp://localhost:50002") subscriber.setsockopt(zmq.SUBSCRIBE, "") while True: string = subscriber.recv_json() print(string)
Sending messages
There is a REP socket waiting to receive message and inject them directly in the message bus. You can send message to the event bus by using a ZMQ REQsocket like this:
#!/usr/bin/env python import zmq import time d = {'signal': "bonjour", "sender": u"poipoi", "data": "hello world!"} context = zmq.Context() publisher = context.socket(zmq.REQ) publisher.connect("tcp://localhost:60000") count = 0 while True: count += 1 publisher.send_json(d) message = publisher.recv_json() print "message {0} ".format(count),message time.sleep(2)
, multiple selections available,
Related content
Trigger remotely 6P packets over serial port, openvisualizer and ZMQ
Trigger remotely 6P packets over serial port, openvisualizer and ZMQ
More like this
OpenVisualizer JSON Interface
OpenVisualizer JSON Interface
More like this
OpenVisualizer
OpenVisualizer
More like this
CoAP Interaction
CoAP Interaction
More like this
Running a Network
Running a Network
More like this