0

我认为我的 zmq.jar 有问题所以我尝试使用 jeroMQ 但我有同样的问题。

这是我的方法:

private boolean submitEvent(String ioMessage) {
    log.info("SEND");

    ZMQ.Context context = ZMQ.context();

    ZMQ.Socket sender = context.socket(ZMQ.PUSH);

    sender.connect("tcp://localhost:8086");

    sender.send("MESSAGE");

    return true;

}

我在 python 中有一个 PULL 脚本,如果我也在 python 中尝试推送脚本,它会接收所有内容。

所以我的问题是在java中。

我在日志中看到第一行(“发送”),但我没有收到脚本中的任何内容。

我应该改变什么?

4

1 回答 1

1

来自JeroMQ Wiki的常见错误

  • 正确关闭所有套接字,否则Context.term() 将永远等待

所以你的最终代码应该是

private boolean submitEvent(String ioMessage) {

    log.info("SEND");

    ZMQ.Context context = ZMQ.context();

    ZMQ.Socket sender = context.socket(ZMQ.PUSH);

    sender.connect("tcp://localhost:8086");

    sender.send("MESSAGE");

    sender.close();

    context.term(); 

    return true;

}
于 2014-04-01T10:52:23.877 回答