</step00>
Make sure what you need !
Let's see the map below:
</step01> If your data centre send many many data to you by socket ...
Let's see the map again ..
</step02> So you may know how to use the ZeroMQ deal with your data ...
We assume the the socket.recv just like a client ...(Actually,it's server/client )
So the code can be like the below ...
</pre><pre name="code" class="python">#!/usr/bin/python
import zmq
import time
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5559")
for request in range(1,11):
socket.send(b"Hello:-->%d" % request)
message = socket.recv()
print("Received reply %s [%s]" % (request,message))
time.sleep(1)
</step03> Here,You have the data source ... But where is the ZeroMQ ..
Good ! let's create one ,Because it's work like a broker , so we name it as "broker.py"
#!/usr/bin/python
import zmq
context = zmq.Context()
frontend = zmq.Context()
frontend = context.socket(zmq.ROUTER)
backend = context.socket(zmq.DEALER)
frontend.bind("tcp://*:5559")
backend.bind("tcp://*:5560")
poller = zmq.Poller()
poller.register(frontend,zmq.POLLIN)
poller.register(backend,zmq.POLLIN)
while True:
socks = dict(poller.poll())
if socks.get(frontend) == zmq.POLLIN:
message = frontend.recv_multipart()
backend.send_multipart(message)
if socks.get(backend) == zmq.POLLIN:
message = backend.recv_multipart()
frontend.send_multipart(message)
</step04> we have a broker ,so He/She looking for someone work for him/her ....
Here,We will hire some worker ...(Actually,We make them ...)
How to make it ...Let's see the code below
#!/usr/bin/python
import zmq
context = zmq.Context()
frontend = zmq.Context()
frontend = context.socket(zmq.ROUTER)
backend = context.socket(zmq.DEALER)
frontend.bind("tcp://*:5559")
backend.bind("tcp://*:5560")
poller = zmq.Poller()
poller.register(frontend,zmq.POLLIN)
poller.register(backend,zmq.POLLIN)
while True:
socks = dict(poller.poll())
if socks.get(frontend) == zmq.POLLIN:
message = frontend.recv_multipart()
backend.send_multipart(message)
if socks.get(backend) == zmq.POLLIN:
message = backend.recv_multipart()
frontend.send_multipart(message)
</step05>
That's all ! Thanks :)
Ref:http://zguide.zeromq.org/page:all