Ich entwickle eine Chat-Anwendung mit Openfire XMPP Server. Ich kann einen Chat zwischen zwei Benutzern schreiben. Aber ich möchte wissen, Typ eingeben, wenn jemand Nachricht eingibt. Also habe ich eine Klasse erstellt: -
%Vor%Aber ich bin verwirrt, so wie es funktioniert? Ich weiß, dass ich ein Paket brauche, wo ich es in Listener kann. Aber ich kann das Paket nicht finden.
Bitte schlagen Sie irgendeinen vor, wie es funktioniert?
und was ist der Unterschied zwischen Smack und asmack?
Danke!
Um ChatStateListener
zu aktivieren, müssen Sie eine benutzerdefinierte MessageListener
Class
Dann erstellen Sie MessageListener
object
Und dann übergeben Sie dies in der Create Chat-Methode
%Vor%Was ist der Unterschied zwischen Smack und asmack? & lt; - Überprüfen Sie dies
endlich habe ich die Lösung gefunden. Ich muss den Chat-Listener zusammen mit dem Chat-Manager verwenden und auch in der sendcomposingnotification -Funktion verwenden. Es ist nicht erforderlich, die Messageeventrequestlistener-Schnittstelle oder eine andere benutzerdefinierte Klasse dafür zu verwenden. Ich habe die folgenden Zeilen hinzugefügt,
%Vor%und müssen auch eine Benachrichtigung wie folgt senden ..
%Vor%wobei mem der Typ von MessageEventManger ist. Ref: Ссылка
Ich benutze Chat-Status-Listener:
%Vor%Binden Sie den Chatstatuslistener wie oben beschrieben an jede jid, dann:
%Vor%Auf Klasse MMessageListener erstellen, um eingehende Nachrichten zu überwachen
private Klasse MMessageListener implementiert MessageListener, ChatStateListener {
%Vor%Listener zu Ihrem Chatobjekt hinzufügen
Chat Mychat = ChatManager.getInstanceFor (Verbindung) .createChat ( "Benutzer2 @ localhost"), mMessageListener);
Status an empfangenden Benutzer senden, wenn Texttext geändert wird
ChatStateManager.getInstance (Verbindung) .setCurrentState (ChatState.composing, Mychat);
Das funktioniert gut für mich.
Ihr oder ein anderer xmpp-Client, den Sie verwenden, sollte den Chat-Status für Sie senden. Sie können den Status abfangen.
Gefällt mir das;
%Vor%oder
%Vor%Aber Sie können es auch von ProcessPacket bekommen. Dort bekommst du ein Message-Objekt, nachdem du dort einen xml-Teil entpacken und behandeln kannst, der einen bestimmten Chatstatus enthält oder nicht.
%Vor%handle jetzt entsprechend deiner Anforderung.