У меня есть два простых консольных приложения, которые содержат систему актера. Каждое приложение работает на отдельном компьютере. Я хочу выбрать актера из второго приложения и отправить сообщение.
Первый
class Program
{
static void Main(string[] args)
{
var config = ConfigurationFactory.ParseString(@"
akka {
actor {
provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
}
remote {
dot-netty.tcp {
port = 8080
hostname = 0.0.0.0
public-hostname = 192.168.0.175
}
}
}");
using (var system = ActorSystem.Create("System1", config))
{
var actorSelection2 = system.ActorSelection("akka.tcp://System2@192.168.0.152:8082/user/Actor");
var actor2 = actorSelection2.ResolveOne(TimeSpan.FromSeconds(3)).Result;
actor2.Tell("Hello from System1!");
Console.ReadKey();
}
}
}
Второй
class Program
{
static void Main(string[] args)
{
var config = ConfigurationFactory.ParseString(@"
akka {
actor {
provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
}
remote {
dot-netty.tcp {
port = 8082
hostname = 0.0.0.0
public-hostname = 192.168.0.152
}
}
}");
using (var system = ActorSystem.Create("System2", config))
{
var actor = system.ActorOf<Actor>("Actor");
Console.ReadKey();
}
}
}
public class Actor : ReceiveActor
{
public Actor()
{
Receive<string>(msg =>
{
Console.WriteLine($"RECEIVE: {msg}");
});
}
}
Система1 не может разрешить «Актер», не видитЭто. Это неправильный конфиг или проблемы с сетью? Любая идея, как я могу устранить эту проблему? Спасибо!