我的问题是试图半关闭一个 zmq 套接字。
简单来说,我在 Python 中有一对 PUSH/PULL 套接字。
PUSH 套接字永远不会停止发送,但 PULL 套接字应该能够通过以下方式自行清理:
- 停止接受队列中的任何其他消息
- 处理仍在队列中的消息
- 关闭插座等。
我不想以任何方式影响 PUSH 套接字,它可以继续累积自己的队列,直到另一个 PULL 套接字出现或可能已经存在。LINGER 选项似乎不适用于 recv()(仅适用于 send())。
一种选择可能是在中间有一个代理,代理 PUSH 和接收器 PULL HWM 设置为零。然后代理的 PULL 会累积消息。但是,我宁愿不这样做。还有其他方法吗?