2012-05-28 10 views
7

JavaでAkkaが提供するEventBus(Scalaではなく)を使用する方法のアドバイスが必要です。ウェブサイト上のドキュメントが不完全であると思わ:http://doc.akka.io/docs/akka/2.0.1/java/event-bus.htmlAkka EventBus for Javaの例

私の知る限り理解されるように、俳優は次のように、特定のメッセージに反応するように作成する必要があります。

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

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

誰かが良いチュートリアル/例/などを教えていただけますか?

私はあなただけの1行の短いだと思う
+0

のようなものである必要がありますが、私はそれまでの研究APIで、ドキュメントを改善するためのチケットを開きました。 http://doc.akka.io/api/akka/2.0.1/#akka.event.EventStream –

+0

実際、私はその事例も見たいと思っています。現在、GuavaのEventBusを使用して簡単なGUIイベント処理を行っています。しかし、重労働については、私はAkkaを紹介し、Guavaを一掃したいと思っています。同じアプリケーションで2つのイベント処理ライブラリを保持するのはちょっと残念です... –

答えて

10

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); 
    } 
}