Cómo enviar y recibir posts usando XMPPFramework

Estoy creando una aplicación de chat con XMPP Framework en iPhone. Deseo conocer el process para enviar y recibir posts. ¿Alguien puede darme una solución para esto?

Gracias por adelantado.

La búsqueda rápida de Google revela muchas bibliotecas XMPP , ya sea C / C ++ u ObjC. Quizás http://code.google.com/p/xmppframework/ sería un buen punto de partida, aunque no lo he probado personalmente.

Descargar XMPPFramework y descomprimirlo. Hay varias carpetas dentro. Abra la carpeta 'Xcode'> abra la carpeta 'iPhoneXMPP'> click 'iPhoneXMPP.xcodeproj'> ejecútelo. Primero solicita cnetworkingencial de inicio de session. Una vez que haya iniciado session con éxito, mostrará su list de amigos. Funciona bien para gmail. Hay un método de callbacks que se llama para cada post entrante:

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message { user = [xmppRosterStorage userForJID:[message from] xmppStream:sender managedObjectContext:[self managedObjectContext_roster]]; if ([message isChatMessageWithBody]) { NSString *body = [[message elementForName:@"body"] stringValue]; NSString *from = [[message attributeForName:@"from"] stringValue]; NSMutableDictionary *m = [[NSMutableDictionary alloc] init]; [m setObject:body forKey:@"msg"]; [m setObject:from forKey:@"sender"]; if ([[UIApplication shanetworkingApplication] applicationState] == UIApplicationStateActive) { NSLog(@"Applications are in active state"); //send the above dictionary where ever you want } else { NSLog(@"Applications are in Inactive state"); UILocalNotification *localNotification = [[UILocalNotification alloc] init]; localNotification.alertAction = @"Ok"; localNotification.applicationIconBadgeNumber=count; localNotification.alertBody =[NSString stringWithFormat:@"From:"%@\n\n%@",from,body]; [[UIApplication shanetworkingApplication] presentLocalNotificationNow:localNotification]; //send the above dictionary where ever you want } } } 

Para enviar un post, debemos escribir nuestro propio método donde quiera:

 -(void)sendMessage { NSString *messageStr =messageField.text; if([messageStr length] > 0) { NSLog(@"Message sending fron Gmail"); NSXMLElement *body = [NSXMLElement elementWithName:@"body"]; [body setStringValue:messageStr]; NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; [message addAttributeWithName:@"type" stringValue:@"chat"]; [message addAttributeWithName:@"to" stringValue:@"destination address"]; [message addChild:body]; NSLog(@"message1%@",message); [[self appDelegate].xmppSream sendElement:message]; } } 

Para enviar el post en grupos / Habitación a continuación es el fragment

 XMPPMessage *message = [XMPPMessage message]; [message addBody:@"123"]; [self.currentRoom sendMessage:message1]; Where self.currentRoom is XMPPRoom 

Si está enviando un post desde Room/Group , use este código para enviar posts.

 [xmppRoom sendMessage:@"Hi All"]; 

No necesita enviar los posts a través de xmppStream . Esta sola línea de código funciona perfectamente para mí.

Aquí hay una solución para enviar un post a través de XMPPFramework en Swift 3

 let user = XMPPJID(string: "user@jabjab.de") let msg = XMPPMessage(type: "chat", to: user) msg?.addBody("Message to send") self.xmppStream.send(msg)