8

Akka が提供する EventBus を Java (Scala ではありません!) で使用する方法についてアドバイスが必要です。Web サイトのドキュメントは不完全なようです: http://doc.akka.io/docs/akka/2.0.1/java/event-bus.html

私が理解している限り、次のような特定のメッセージに反応するようにアクターを作成する必要があります。

final ActorSystem actorSystem = ActorSystem.create("ServerEvents");
final ActorRef actor = actorSystem.actorOf(new Props(SeverEventHandler.class));
actorSystem.eventStream().subscribe(actor,ServerMessage.class);

しかし、イベント バスにメッセージを送信する方法が明確ではありません。

誰かが良いチュートリアル/例/などを共有できますか?

4

2 に答える 2

11

あなたはたった1行足りないと思います:

final ActorSystem actorSystem = ActorSystem.create("ServerEvents");
final ActorRef actor = actorSystem.actorOf(new Props(SeverEventHandler.class));
actorSystem.eventStream().subscribe(actor,ServerMessage.class);

actorSystem.eventStream().publish(new ServerMessage()); <<== add this

ServerEventHandler は次のようなものでなければなりませんが

public class ServerEventHandler extends UntypedActor {
  @Override
  public void onReceive(final Object message) {
    System.out.println("Got event in thread: " + Thread.currentThread().getName());
    System.out.println("Event: " + message);
  }
}
于 2012-06-11T13:01:20.897 に答える