Я работаю с Akka, на данный момент у меня есть следующий протокол.
В моем протоколе у меня есть сервер, который отвечает только за создание ресурсов (комнаты и габблеры). Эти ресурсы создаются, а затем доступны. Затем я хотел бы с помощью ключа найти соответствующий Gabbler ActorRef для отправки сообщения, но на этот раз из класса, который предоставляет API/метод, который не является актором. Я видел документацию, и мне кажется невероятным, что в системе акторов нет метода, который может возвращать конкретного актора из его иерархии для его использования. Я уже читал раздел «Ресепшн», и хотя он мне не очень понятен, я вижу, что он опять же ориентирован на актеров. В Akka нет метода, который возвращает ссылку на основе пути Актера?
package co.test;
import akka.actor.typed.ActorSystem;
import akka.actor.typed.javadsl.AskPattern;
import akka.actor.typed.receptionist.Receptionist;
import co.test.actors.ChatServer;
public class ChatServerApplication {
public static void main(String[] args) {
ActorSystem<ChatServer.ServerCommand> system =
ActorSystem.create(ChatServer.create(), "chat-server");
system.tell(new ChatServer.NewEventRoom("room1"));
system.tell(new ChatServer.AttendeeJoin("room1", "user1"));
system.tell(new ChatServer.AttendeeJoin("room1", "user2"));
system.tell(new ChatServer.AttendeeJoin("room1", "user3"));
system.tell(new ChatServer.AttendeeJoin("room1", "user4"));
system.tell(new ChatServer.AttendeeJoin("room1", "user5"));
system.tell(new ChatServer.AttendeeJoin("room1", "user6"));
system.tell(new ChatServer.AttendeeJoin("room1", "user7"));
//ActorRef<Gabbler.Command> gabbler = get specific Gabbler ActorRef
//gabbler.tell(new Gabbler.SendMessage("test");
}
}
Протокол на изображении выше уже реализован, но я застрял в понимании того, что было задано выше.