0

我在本地设置了两个演员,但演员系统不同。这里的目标是让参与者 A 向参与者 B 发送消息。

但是,我无法让演员 A 使用 ActorSelection 向演员 B 发送消息(远程处理),如下所示:

  parent.ActorSelection("akka.tcp://RemoteSystem@localhost:8888/user/RemoteActor/ChildActor").Tell(msg)

会出现“无效地址”的错误。我做错了什么?

我已经黔驴技穷了。

编辑:

这是我的客户端配置:

    let system =
        let config = """
    akka {  
        loglevel=DEBUG,
        log-config-on-start = on,
        #loggers="Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"
        actor {
           provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
           debug {  
              receive = on 
              autoreceive = on
              lifecycle = on
              event-stream = on
              unhandled = on
           }
        remote {
            helios.tcp {
                transport-class =     "Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote"
                applied-adapters = []
                transport-protocol = tcp
                port = 0
                hostname = "localhost"
                # Maximum frame size: 600KB
                maximum-frame-size = 500000b
                log-remote-lifecycle-events = DEBUG
            }  

        }
    }
    """

这是我的服务器配置:

    let system =
        let config = """
    akka {  
        loglevel=DEBUG,
        log-config-on-start = on,
        #loggers="Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"
        actor {
            provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
            debug {  
                receive = on 
                autoreceive = on
                lifecycle = on
                event-stream = on
                unhandled = on
            }
        remote {
            helios.tcp {
                transport-class = "Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote"
                applied-adapters = []
                transport-protocol = tcp
                port = 8888
                hostname = "localhost"
                # Maximum frame size: 600KB
                maximum-frame-size = 600000b
                log-remote-lifecycle-events = DEBUG
            }

        }
    }
    """

这是客户端的输出:

    [![error][1]][1]

另一件事是,为什么端口号总是回退到 2552 ?我使用了 app.config 以及从内部代码解析。它仍然使用相同的端口号。

4

0 回答 0