Ich entwickle die Chat-Anwendung mit Xmpp Ejabberd. Ich möchte einen XMPP-Gruppenchat entwickeln, ähnlich wie bei der App. Das XMPP-Gruppen-Chat-Setup wurde auf meinem XMPP-Server durchgeführt. Ich erschaffe erfolgreich den Raum &, der den Raum verbindet. Aber ich möchte die Räume, in denen ich mich angeschlossen habe. Ich verwende den folgenden iq fürWie bekomme ich eine Liste von Räumen, die von einem bestimmten Benutzer in xmpp verbunden sind?
NSString* server = @"conference.test.com";
XMPPJID *serverJID = [XMPPJID jidWithString:server];
XMPPIQ *iq = [XMPPIQ iqWithType:@"get" to:serverJID];
[iq addAttributeWithName:@"from" stringValue:[[APP_DELEGATE xmppStream] myJID].full];
NSXMLElement *query = [NSXMLElement elementWithName:@"query"];
[query addAttributeWithName:@"xmlns" stringValue:@"http://jabber.org/protocol/disco#items"];
[iq addChild:query];
[[APP_DELEGATE xmppStream] sendElement:iq];
aus dem obigen Code, um die Liste der Gruppen vom Server holen ich die Liste der Gruppen von meinem Server bekommen, aber ich möchte die Liste der Gruppen, die ich beigetreten sind oder die Gruppen aus womit ich die Einladung bekommen habe.
-Code für & schaffen beitreten das Zimmer ist als
-(void) CreateRoom:(NSString *)roomJid {
static dispatch_once_t queueCreationGuard;
static dispatch_queue_t queue;
dispatch_once(&queueCreationGuard, ^{
queue = dispatch_queue_create("com.something.myapp.backgroundQueue", 0);
});
XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init];
XMPPJID *roomJID = [XMPPJID jidWithString:roomJid];
XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomStorage jid:roomJID dispatchQueue:queue];
[xmppRoom activate:[self xmppStream]];
[xmppRoom addDelegate:self
delegateQueue:queue];
NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
[history addAttributeWithName:@"maxstanzas" stringValue:@"0"];
[xmppRoom joinRoomUsingNickname:[self xmppStream].myJID.user
history:history
password:nil];
}
- (void)xmppRoomDidCreate:(XMPPRoom *)sender
{
NSLog(@"Room Created");
}
- (void)xmppRoomDidJoin:(XMPPRoom *)sender
{
NSLog(@"Room Joined");
}
folgt Wenn jemand Lösung haben Sie die Frage beantworten. Dank
, wie Sie es zu tun habe es geschafft? –