我如何实时输入状态(xmpp / smack)?

时间:2015-12-31 02:11:56

标签: android xmpp chat openfire smack

我想实现聊天状态,以便接收者可以知道其他用户是否正在打字。

我已为创建聊天添加了此代码

Mychat = ChatManager.getInstanceFor(connection).createChat("testadmin@domain.com"), mMessageListener);

我用它来设置 chatState

ChatStateManager.getInstance(connection).setCurrentState(ChatState.composing, Mychat);

以及接收消息并获取 chatState

的最后一个代码
private class MMessageListener implements ChatMessageListener, ChatStateListener{
        Context ctx;
        public MMessageListener(Context context) {
            ctx=context;

        }
    public void processMessage(final org.jivesoftware.smack.chat.Chat chat,
                                   final Message message) {
        //message received success..

    }
    @Override
        public void stateChanged(Chat arg0, ChatState arg1) {
            Log.d("Chat State","typing status run..");

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

我已经添加了所有代码并且它正在接收组合状态,但是 只有在我发出信息后,国家才会到达 消息本身,这对某人来说并不是很好的打字类型 消息,当有人在发送消息之前打字时,我如何实时输入状态?

我使用smack 4.1.5,openfire作为服务器

最好的考虑。

0 个答案:

没有答案