2012-05-28 20 views
7

Java'da Akka tarafından sağlanan EventBus'un (Scala!) Nasıl kullanıldığını öğrenmek için bazı önerilerde bulunun. Web sitesinde belgelerine eksik gibi görünüyor: http://doc.akka.io/docs/akka/2.0.1/java/event-bus.htmlJava için Akka EventBus örneği

Bildiğim kadarıyla, aktör gibi belirli iletileri tepki oluşturulmalıdır anlaşılan olarak:

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

Ama şimdi bir mesaj göndermek için nasıl net değil olay otobüsü.

Birisi lütfen bazı iyi öğreticiler/örnekler/etc paylaşabilirsiniz?

+0

gibi bir şey: http://doc.akka.io/api/akka/2.0.1/#akka.event.EventStream –

+0

Aslında ben de bunun bir örneğini görmek istiyorum. Şu anda basit GUI olay işleme için Guava's EventBus kullanıyoruz. Ancak ağır işler için Akka'yı tanıtmak ve Guava'dan tamamen kurtulmak istiyorum. Aynı uygulamada iki olay işleme kütüphanesi tutmak için biraz daft ... –

cevap

10

Sana kısaca sadece bir satır olduğunu düşünüyorum:

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 olması gerekirken ben bu arada çalışmasında API içinde, docs geliştirmek için bir bilet açtı

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