2012-05-28 19 views
7

के लिए अक्का इवेंटबस का उदाहरण जावा में अक्का द्वारा प्रदान की गई इवेंटबस का उपयोग करने के बारे में कुछ सलाह चाहिए (स्कैला नहीं!)। वेबसाइट पर प्रलेखन अधूरा लगता है: 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); 

लेकिन अब यह स्पष्ट नहीं है कि करने के लिए एक संदेश भेजने के लिए घटना बस

क्या कोई कृपया कुछ अच्छे ट्यूटोरियल/उदाहरण/आदि साझा कर सकता है?

+0

मैं तब तक अध्ययन एपीआई में डॉक्स में सुधार करने के लिए एक टिकट खोल दिए हैं, कुछ: http://doc.akka.io/api/akka/2.0.1/#akka.event.EventStream –

+0

दरअसल मैं भी इसका एक उदाहरण देखना पसंद करता हूं। वर्तमान में हम सरल जीयूआई इवेंट हैंडलिंग के लिए गुवा के इवेंटबस का उपयोग कर रहे हैं। भारी कर्तव्य के काम के लिए हालांकि मैं अक्का को पेश करना चाहता हूं और पूरी तरह से अमरूद से छुटकारा पा सकता हूं। एक ही आवेदन में दो घटना हैंडलिंग पुस्तकालयों को रखने के लिए यह थोड़ा सा दाफ्ट है ... –

उत्तर

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