XMPP를 사용하여 채팅하는 중반입니다. ejabberd 서버에 등록하고 로그인했습니다.XMPP ejabberd 서버에서 Rosters를 사용하여 모든 사용자에게 액세스하는 방법
웹 인터페이스에서 등록 된 사용자가 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 저장소에 자동으로 동기화되도록 쿼리를 만들어야합니까?
도움이 될 것입니다.