2012-01-11 5 views
4

내 응용 프로그램과 XMPP (Openfire) 서버 간의 통신을 위해 Strophe.js 라이브러리를 사용하고 있습니다.xmpp 서버에서 새 그룹을 만드는 방법

그룹에 사용자를 추가하고 싶습니다. 새 그룹을 만들려면 어떻게해야합니까? 버디 쿼리를 추가하여 그룹 이름을 어떻게 언급 할 수 있습니까?

이 내가 하루 동안 XMPP 확장을 참조하지만 난 당신은 로스터 업데이트를 보낼 필요가 적절한 결과

답변

5

를 찾을 수 없습니다

var str1=$pres({'xmlns':'jabber:client','from':[email protected],'to':[email protected],'type':'subscribe'}).c('nick',{'xmlns':'http://jabber.org/protocol/nick'}).t(userName); 
connection.send(str1.tree()); 

새로운 사용자

를 추가하는 내 코드입니다. 자세한 내용은 Read RFC 6121, Section 2을 참조하십시오. 이 프로토콜을 보낼 수 있습니다 :

<iq from='[email protected]/balcony' 
    id='rs1' 
    type='set'> 
    <query xmlns='jabber:iq:roster'> 
    <item jid='[email protected]' name='nick'> 
     <group>My Group</group> 
    </item>   
    </query> 
</iq> 

같은 코드 뭔가 :

$iq({'type':'set'}).c('query',{'xmlns':Strophe.NS.ROSTER}) 
    .c('item', {'jid':'[email protected]','name':'nick'}) 
     .c('group').t('My Group') 
+1

하이 조. 먼저 내가 만, 확장이 –

+2

을 제공 할 것입니다 어떤 그런 일이로 가능합니다. 없다 새로운 그룹을 생성합니다 기본 XMPP의 빈 그룹 PEP (XEP-0163 : http://xmpp.org/extensions/xep-0163.html)를 사용하거나 비공개 저장소 (XEP-0049 : http : //)를 사용하여 빈 그룹 목록을 개별적으로 저장할 수 있습니다. xmpp.org/extensions/xep-0049.html). 그 중 하나에 대해서는 사용자가 제어하는 ​​새 네임 스페이스를 사용하지만 다른 클라이언트가 빈 그룹을 볼 수있을 것으로 기대하지는 마십시오. 이 문제에 대해 강하게 생각하는 경우 새 XEP를 작성하고 XSF에 제출하십시오. http://xmpp.org/xmpp-protocols/xmpp-extensions/submitting-a-xep/ –

0

내가 코드 아래 사용이 만들었습니다.

XMPPRoomCoreDataStorage * rosterstorage = [[XMPPRoomCoreDataStorage alloc] init]; XMPPRoom * xmppRoom = [[XMPPRoom 할당] initWithRoomStorage : rosterstorage jid : [XMPPJID jidWithString : @ "[email protected]"] dispatchQueue : dispatch_get_main_queue()];

[xmppRoom activate:[[self appDelegate]xmppStream]]; 
[xmppRoom joinRoomUsingNickname:@"DeveloperQ" history:nil]; 

[[[self appDelegate] xmppStream] addDelegate:self delegateQueue:dispatch_get_main_queue()]; 
[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

이어서

  • (공극) xmppRoomDidJoin (XMPPRoom *) 송신기

{

NSXMLElement *의 IQ = NSXMLElement elementWithName "지능"@]; 내가 특정 그룹에 사용자를 추가 기운이 경우

[iq addAttributeWithName:@"id" stringValue:[NSString stringWithFormat:@"inroom-cr%@",groupName]]; 
[iq addAttributeWithName:@"to" stringValue::@"[email protected]"]; 
[iq addAttributeWithName:@"type" stringValue:@"set"]; 
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:XMPPMUCOwnerNamespaceName]; 
NSXMLElement *xelem = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"]; 
[xelem addAttributeWithName:@"type" stringValue:@"submit"]; 
[query addChild:xelem]; 
[iq addChild:query]; 
[[[self appDelegate] xmppStream] sendElement:iq]; 

}

관련 문제