I set up two actors locally but with different actor systems. The objective here is to get actor A to send messages to actor B.
However I just couldn't get that actor A to send a message(remoting) to actor B using ActorSelection like this:
parent.ActorSelection("akka.tcp://RemoteSystem@localhost:8888/user/RemoteActor/ChildActor").Tell(msg)
Error of " Invalid address " would come out. What i did wrong?
I am at my wit's end.
EDIT:
Here's my client config:
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
}
}
}
"""
and here's my server config:
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
}
}
}
"""
and here's the output from client:
[![error][1]][1]
another thing is, why the port number always fallback to 2552 ? i have used app.config as well as parsing from inside code. Still it is using the same port number.