【发布时间】:2015-08-18 19:13:31
【问题描述】:
使用 PyZMQ,当我尝试在函数内创建套接字并使用它发送消息时,永远不会收到消息。
context = zmq.Context()
def sender():
sock = context.socket(zmq.PUB)
sock.connect("tcp://localhost:44444")
sock.send("status good")
sender()
但是,如果我在全局范围内创建套接字,它可以工作:
context = zmq.Context()
sock = context.socket(zmq.PUB)
sock.connect("tcp://localhost:44444")
sock.send("status good")
更奇怪的是,检查底层文件描述符上的事件表明确实发生了事件。但是,使用getsockopt(EVENTS) 检查轮询值表明没有可从套接字读取的内容。
我尝试让函数在退出前休眠几秒钟,因此订阅者有足够的时间在套接字被销毁之前阅读消息。但这并没有改变任何东西。
【问题讨论】:
标签: python sockets events pyzmq