【发布时间】:2012-06-09 01:54:50
【问题描述】:
这是我的情况:我有一个服务器,它打开一个套接字 (ZMQ_DEALER) 并将它与 ipc 绑定到 /tmp/server.ipc。然后我有一个外壳,它通过另一个套接字(ZMQ_DEALER)连接到服务器。 shell 向服务器发送一些命令,服务器执行它们。 但是,有时,某些命令是脚本,需要将其他命令发送到服务器。
问题是我无法选择必须从服务器接收答案的套接字。因此,shell 的消息会被脚本处理,反之亦然。
你能帮我理解如何解决这个问题吗?我是否使用了错误的套接字类型?
我必须只用一个插座而不是两个来解决这个问题。
如果有帮助,我正在使用 ZeroMQ 的 perl 绑定。
非常感谢。
【问题讨论】:
-
请澄清:“......使用另一个套接字(ZMQ_DEALER)”,但您已经定义了(ZMQ_DEALER)。我在想:shell>>socket>>server,但你说:“但是,有时,有些命令是脚本,需要向服务器发送其他命令。”我以为脚本已经在服务器上?
-
ZMQ_DEALER 是套接字类型。我添加它只是确保我没有使用错误的套接字类型。服务器负责启动一些服务(DNS、HTTPD 和 PROXY),并对这些服务启动一些“测试”。因此,如果您要求服务器启动测试,则测试本身必须启动具有某些特定配置的一些服务。这就是测试本身需要与服务器对话的原因。消息在 shell(启动测试)和测试之间混合。