您好我正在使用xmpp和open-fire for server开发一个聊天应用程序,
目前我可以创建新用户并使用该用户登录。
我在网上搜索了很多并尝试了不同的解决方案,但没有任何工作。
在服务器上,所有用户都会自动添加到一个默认组中。当新用户被创建时。
但是我无法获得所有用户的列表,直到我将它们添加到我的名单中。
我的要求是显示所有用户的列表并允许用户添加他们的朋友,如何让所有用户列出那些不是我朋友的人?
我试图从群组中获取用户列表,但仍然没有成功,我只能通过以下代码检索那些是我朋友的用户列表。
Roster roster = xmppConnection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
for(RosterEntry entry1 : entries)
{
System.out.println("UserID:- " + entry1.getUser());
System.out.println("Name:- " + entry1.getName());
System.out.println("Status:- " + entry1.getStatus());
System.out.println("type:- " + entry1.getType());
}
从代码中使用以下代码检索用户条目
Roster roster = xmppConnection.getRoster();
Collection<RosterGroup> groups = roster.getGroups();
for(RosterGroup group: groups )
{
System.out.println("Group Name:- " + group.getName());
Collection<RosterEntry> entries = roster.getEntries();
for(RosterEntry entry1 : entries)
{
System.out.println("UserID:- " + entry1.getUser());
System.out.println("Name:- " + entry1.getName());
System.out.println("Status:- " + entry1.getStatus());
System.out.println("type:- " + entry1.getType());
}
}
感谢所有用户列表的任何帮助/解决方案或建议。
谢谢。
答案 0 :(得分:3)
以下代码对我有用:
UserSearchManager usm = new UserSearchManager(connection);
Form searchForm = usm.getSearchForm("search." + connection.getServiceName());
//Here i am searching for the service name
Form answerForm = searchForm.createAnswerForm();
UserSearch userSearch = new UserSearch();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", "*");
ReportedData data = userSearch.sendSearchForm(connection, answerForm, "search." + connection.getServiceName());
if (data.getRows() != null) {
System.out.println("not null");
Iterator<ReportedData.Row> it = data.getRows();
arryAllUsers.clear();
while (it.hasNext()) {
//System.out.println("row");
ReportedData.Row row = it.next();
Iterator iterator = row.getValues("jid");
if (iterator.hasNext()) {
String jid = iterator.next().toString(); //here i get all the user's of the open fire..
// l.add(value);
}
// Log.i("Iteartor values......"," "+value);
}
}
答案 1 :(得分:0)
我可以提出以下建议: