【发布时间】:2015-02-11 03:45:50
【问题描述】:
我正在尝试创建一个系统来收集发送的数据 我有两个小脚本,一个receiver.py,它应该接收数据,一个发送者应该发送它,目前我尝试使用1-1连接,但最后我需要多个发送者和一个接收者来处理传入的数据。我尝试使用 0mq 发布者/订阅者模式来完成此操作。
#receiver.py
def receive():
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.setsockopt(zmq.SUBSCRIBE, 'Child:')
socket.bind('tcp://localhost:5000')
while True:
print 'Parent received: %s' % socket.recv()
receive()
#sender.py
def send(data):
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.connect('tcp://localhost:5000')
socket.send('Sender: %i' % data)
socket.close()
print "sent"
send(10)
当我启动receiver.py 时,它只是等待数据,当我运行sender.py 时什么也没有收到。非常感谢您的建议,实际上我什至不确定发布者/订阅者是否是我的方案的最佳模式(多个传感器通过本地网络将数据发送到一台服务器进行实时处理)。
【问题讨论】:
-
从这里的简单示例zeromq.org/intro:read-the-manual 告诉我发布者使用
bind()而订阅者使用connect() -
谢谢,我检查过了,0mq 一定有问题,因为您提供的链接中的示例对我不起作用。它卡在 message =subscriber.recv() 处。