我从实现了Runnable接口的JeroMQ检查了ZMQueue类的源代码,如下所示:

private final Socket  inSocket;
private final Socket outSocket;

 public ZMQQueue( Context context, Socket inSocket, Socket outSocket ){
    this.inSocket  =  inSocket;
    this.outSocket = outSocket;
 }

 @Override
 public void run(){
        zmq.ZMQ.proxy( inSocket.base(), outSocket.base(), null );
 }


如您所见,在run()中只有一个语句,即调用

ZMQ.proxy()-这里发生了什么?

在构造函数中,它以Context实例为参数,对此不执行任何操作。

谁能解释一下该类的实现目的?

最佳答案

它是在单独的线程中工作的简单代理,它从一个套接字获取一个消息,然后将其放入另一个套接字,ZMQueue类只是jeromq / jzmq库中的一种高级api。

您也可以使用不带ZMQueue类(doc)的代理。
或者,您可以通过所需的任何处理自己实现一些更复杂的事情。

10-06 08:52