【问题标题】:PUSH with jeroMQ使用 jeroMQ 推送
【发布时间】:2014-04-01 18:52:23
【问题描述】:

我认为我的 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 中。

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

我应该改变什么?

【问题讨论】:

    标签: java zeromq jeromq


    【解决方案1】:

    来自 JeroMQ Wiki 上的 Common mistakes

    • 正确关闭所有套接字,否则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;
    
    }
    

    【讨论】:

    • 谢谢,但是我检查了日志,发现问题是因为:java.lang.NoClassDefFoundError: org/jeromq/ZContext 但我不知道为什么,因为它在项目中跨度>
    • 是的,我必须更改我的 jeromq.jar 的路径,我必须将其放入项目中,而不仅仅是将其添加到库路径中。谢谢大佬
    猜你喜欢
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多