在我的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占用者列表中没有用户。在这种情况下如何正确地将用户从群聊中移除?