Java custom event handler und Listener
Zur Zeit Spiele ich, um mit einer Java-Implementierung von Socket.io, der hier verfügbar ist: netty-socketio
Habe ich den server zum laufen, und seine empfangen/senden von Nachrichten gut zwischen client und server, aber ich muss Sie Ereignisse auslösen, auf bestimmte Nachrichten zu empfangen, und das ist, wo ich bin verwirrt.
Hier ist mein code:
server.addEventListener("message", clientData.class, new DataListener<clientData>() {
@Override
public void onData(SocketIOClient client, clientData data, AckRequest ackRequest) throws Exception {
System.out.println("Message from client: " + data.getMessage());
}
});
public class clientData{
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
Im wesentlichen das, was ich gerne sehen würde ist, wenn eine bestimmte Nachricht empfangen wird von einem client, ich brauche eine Funktion innerhalb einer anderen Klasse zu führen. Ich habe die letzten zwei Stunden Lesen über Observable
, Observer
, Interfaces
- und event-Handler, aber ich bin mir wirklich nicht sicher, wie diese eingerichtet.
Die Bibliothek macht auch die Erwähnung dieses DataListener
, aber ich habe keine Ahnung was das ist, da gibt es wenig Dokumentation in der Bibliothek.
Jede Eingabe oder Beratung zu diesem würde sehr geschätzt werden.
Dank
Keine der println genannt wird, aber ich brauche eine andere Klasse mitgeteilt werden, dass dies geschehen ist. Ich dachte, das war der Punkt, der Ereignis-Listener?
Ja. Und das ist genau das, was haben Sie in den code. Der listener ist die anonyme Klasse implementieren DataListener.
InformationsquelleAutor Tony | 2015-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Sie uns sagen, Ihre Klasse, die das Ereignis auslöst nennt
A
. Und die Klasse, muss Sie einen Listener für das Ereignis aufgerufen wirdB
. Und das Ereignis wird aufgerufenSomeEvent
.Erstellen Sie zunächst eine Schnittstelle namens
SomeEventListener
:Wenn es Argumente, die übergeben werden soll, wenn das Ereignis Auftritt (in der Regel etwas über der Veranstaltung), können Sie es hinzufügen, um die Methode.
Dann in
A
Sie ein Feld hinzufügen:und eine Methode:
Diese Weise
B
nennen kannsetSomeEventListener
um die Zuhörer.Wenn das Ereignis Auftritt, wird
A
rufen sollteUnd das ist alles dort ist zu
A
!In
B
Sie müssen das interface implementieren:Und Sie können hören für
SomeEvent
wie diese:Und nach diesem Aufruf, alle
SomeEvent
ausgelöst durchA
gehört werden kann durchB
!Über die Observable und Observer-Muster, können wir sehen, dass
A
ist eine Beobachtbare undB
ist ein Beobachter.Einfach!
So einfach ist das! Dank sehr viel Mann, ich versuchte diese Letzte Nacht, und ich konnte nicht meinen Kopf um ihn herum. Das tut genau das, was ich jetzt brauchen, danke nochmal Mann!!
InformationsquelleAutor Sweeper