在smack Android

时间:2015-04-22 15:13:06

标签: android chat smack asmack

在我的appilcation中,我使用以下方法从聊天室离开。

 public void leaveChatRoom(String username)
{
    Log.i("XMPP Chat Client", "User left chat room ");
    if(groupChat != null && groupChat.isJoined())
    {
        try {
            Presence leavePresence = new Presence(Presence.Type.unavailable);
            leavePresence.setTo("groupchat@conference.xxx/" + username);
            connection.sendPacket(leavePresence);
            groupChat.leave();


        } catch (NotConnectedException e) {
            e.printStackTrace();
        }
    }

}

要检查用户是否加入,

public boolean isJoinedGroup(String username)
    {
        boolean isConnected = false;
        if(groupChat != null && groupChat.isJoined())
        {
            isConnected = true;
            Log.i("XMPP Chat Client", "Joined True");
        }
        return isConnected;
}

如果聊天服务器连接成功,这样可以正常工作。但在某些情况下,聊天服务器连接会丢失。在那种情况下,我必须让用户离开聊天室并自动重新加入。因此,当我丢失聊天服务器连接时,我将重新连接到聊天服务器并同时调用leaveChatRoom方法和join group方法。我在行NotConnectedException中收到groupChat.leave();,当我检查加入状态时,它总是返回true。当我检查openfire管理面板时,groupchat占用者列表中没有用户。在这种情况下如何正确地将用户从群聊中移除?

0 个答案:

没有答案