我最近一直在使用 ZMQ(通过
pyzmq
)在单台机器上的节点之间设置发布/订阅。然而,当出现问题时,我不知道是什么原因导致了问题,这给我带来了很大的悲伤。
现在,我正在发布一条消息,然后尝试在连接的订阅者套接字上接收它。或者,至少,我认为它是一个已连接的订阅者套接字。我真的不知道,因为据我所知,ZMQ没有提供任何方法来检查这一点!当我尝试在同一上下文中创建一个“new”订户套接字时,该命令会无限期挂起。不会抛出错误(就像上下文已终止时一样),并且它不会像找不到发布套接字时那样在后台运行。再说一次,我不知道发生了什么以及问题是什么。 我正在寻找有关全面了解 ZMQ 正在做什么以及当事情没有按预期进行时如何调试它的建议。显然,我可以检查本地计算机上的 TCP 端口是否已打开,以验证是否已创建“发布”套接字。但是我如何知道订阅套接字何时连接到“发布”套接字呢?我怎样才能间接或直接地知道发生了什么?
您可以使用 zmq_socket_monitor() 从套接字状态机内部获取连接,以便您查看正在发生的情况。
在这两者之间,您可以在应用程序和线路中获得非常全面的视图。