Akka Netty绑定端口0



在我的单元测试中,我在Localhost上使用端口0旋转远程演员系统。我不希望测试尝试绑定到正在使用的端口。相关的Akka配置是:

  actor {
    provider = "akka.remote.RemoteActorRefProvider"
  }
  remote {
    enabled-transports = ["akka.remote.netty.tcp"]
    netty.tcp {
      hostname = "localhost"
      port = 0
    }
  }

如何问Akka或Netty哪个端口绑定到以便我可以正确创建客户?

我只是一个Akka初学者。希望这个示例会有所帮助。

import akka.actor._
object HelloRemote extends App {
  val system = ActorSystem("HelloRemoteSystem")
  val remoteActor = system.actorOf(Props[RemoteActor], name = "RemoteActor")
  remoteActor ! "The RemoteActor is alive"
  val port = system.asInstanceOf[ExtendedActorSystem].provider.getDefaultAddress.port.get
  println(s"RemoteActor port '$port'")
}
class RemoteActor extends Actor {
  def receive = {
    case msg: String =>
      println(s"RemoteActor received message '$msg'")
      sender ! "Hello from the RemoteActor"
  }
}