0

次のコードを想定してみましょう。

class MQActor extends Actor {

    // Bind on port 0... Technically this should pick a free port
    val pubSocket = context.system.newSocket(SocketType.Pub, Bind("tcp://127.0.0.1:0"))

    def receive = {
        // ...
    }

}

私の質問は次のとおりです。

1) ポート 0 を指定して、使用可能なポートのソケットを要求するのは正しいですか?

2) 1) が機能すると仮定すると、ソケットがバインドされたポートをどのように知ることができますか?

3) 1) が機能しない、および/または 2) が不可能な場合、利用可能なポートにバインドするにはどうすればよいですか?

前もって感謝します!

ビリー

4

1 に答える 1

0

私の知る限り、これは ZMQ では不可能です。ただし、アクターにソケット オプションを要求することはできます。オプションは次のとおりです。

https://github.com/akka/akka/blob/master/akka-zeromq/src/main/scala/akka/zeromq/ConcurrentSocketActor.scala#L85

未使用のポートを自分で決定できます。しかし、あなたのユースケースは正確には何ですか?ソケットをランダムなポートにバインドする必要があるのはなぜですか? パブリッシャーは、どのポートを使用する必要があるかをどのように知るのでしょうか?

于 2012-05-01T19:35:02.270 に答える