gpt4 book ai didi

android - 如何使用 Smack 了解 XMPP openfire 中的键入状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:06 24 4
gpt4 key购买 nike

我正在使用 Openfire XMPP 服务器开发聊天应用程序。我可以在两个用户之间进行文本聊天。但是我想知道有人在输入消息时的输入状态。所以我创建了一个类:-

public class typingStatus implements ChatStateListener {

@Override
public void processMessage(Chat arg0, Message arg1) {
// TODO Auto-generated method stub

}

@Override
public void stateChanged(Chat arg0, ChatState arg1) {
// TODO Auto-generated method stub
System.out.println(arg0.getParticipant() + " is " + arg1.name());

}

}

但我很困惑,它是如何工作的?我知道我需要一个可以在 Listener 中找到的数据包。但是我找不到那个数据包。

请任何人提出建议,它将如何工作?

还有 Smack 和 asmack 之间有什么区别?

谢谢!

最佳答案

要启用ChatStateListener,您需要创建自定义MessageListener

public class MessageListenerImpl implements MessageListener,ChatStateListener  {

@Override
public void processMessage(Chat arg0, Message arg1) {
System.out.println("Received message: " + arg1);

}

@Override
public void stateChanged(Chat arg0, ChatState arg1) {
if (ChatState.composing.equals(arg1)) {
Log.d("Chat State",arg0.getParticipant() + " is typing..");
} else if (ChatState.gone.equals(arg1)) {
Log.d("Chat State",arg0.getParticipant() + " has left the conversation.");
} else {
Log.d("Chat State",arg0.getParticipant() + ": " + arg1.name());
}

}

}

然后创建MessageListener对象

MessageListener messageListener = new MessageListenerImpl();

然后在创建聊天方法中传递这个

Chat newChat = chatmanager.createChat(jabber_id_of_friend, messageListener);

Smack 和 asmack 有什么区别? <-- Check This

关于android - 如何使用 Smack 了解 XMPP openfire 中的键入状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21154833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com