2014-09-22 24 views
3

我正在使用XMPP進行聊天的一半。我已經註冊並登錄到ejabberd服務器。如何訪問在XMPP ejabberd服務器中使用Rosters的所有用戶

我可以在web界面看到有10個註冊用戶和4個在線用戶。但是名冊代表沒有得到任何聯繫。

我試過這個解決方案。我沒有得到任何結果。

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq 
{ 
NSXMLElement *queryElement = [iq elementForName: @"query" xmlns: @"jabber:iq:roster"]; 

if (queryElement) { 
NSArray *itemElements = [queryElement elementsForName: @"item"]; 
[ArrayUsers removeAllObjects]; 
for (int i=0; i<[itemElements count]; i++) { 

    NSString *jid=[[[itemElements objectAtIndex:i] attributeForName:@"jid"] stringValue]; 
    [ArrayUsers addObject:jid]; 
} 
} 
return NO; 
} 

可能是什麼問題?我必須爲此配置服務器設置才能獲取聯繫人信息。默認情況下所有人都可以訪問它? 或者,我是否必須進行查詢以獲取用戶詳細信息並自動同步到CoreData存儲。

任何幫助將不勝感激。

回答

2

問題是在ejabberd配置文件中未啓用共享名單模塊。你可以在你的ejabberd配置模塊部分啓用mod_shared_roster(知道該怎麼做的人會理解,我個人不知道!所以尋求公司其他人的幫助)。 然後,共享名冊選項將在ejabberd服務器管理端的Web界面中可用。

現在配置服務器,以查看所有用戶使用下面的鏈接中可以看出,每體:現在 ejabbered configuration

,如果你已經登錄和名冊(由RobbieHanson如XMMP框架)的自動同步設置,您將獲得列表中的所有用戶。

0

創建一個共享名冊並從名冊中獲取所有用戶。檢查this

相關問題