我正在使用 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());
}
}
但我很困惑,所以它会如何工作?我知道我需要一个数据包,我可以在监听器中找到它。但我找不到那个数据包。
请任何人建议,它将如何运作?
Smack 和 asmack 之间有什么区别?
谢谢你!
启用ChatStateListener
你需要创建一个自定义MessageListener
Class
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
object
MessageListener messageListener = new MessageListenerImpl();
然后将其传递到创建聊天方法中
Chat newChat = chatmanager.createChat(jabber_id_of_friend, messageListener);
Smack 和 asmack 和有什么区别? <-- 检查这个
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)