【问题标题】:ZeroMQ, how to make two socket speaking to one without mixing messagesZeroMQ,如何在不混合消息的情况下使两个套接字与一个套接字通信
【发布时间】: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(启动测试)和测试之间混合。

标签: perl sockets zeromq


【解决方案1】:

感谢 ZeroMQ irc 频道上的 michelp,我找到了解决方案。

您可以在这里找到解决方案:

http://zguide.zeromq.org/page:all#Router-to-Dealer-Routing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2011-08-15
    • 2020-01-10
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    相关资源
    最近更新 更多