– (void) chatDidReceiveMessage: le message (QBChatMessage *) ne fonctionne pas

J'ai integerated QuickBlox iOS sdk v2.5. J'envoie des messages à un particulier et ils sont envoyés au server mais pour recevoir un message – (void) chatDidReceiveMessage: le message (QBChatMessage *) n'est pas appelé

C'est ce que je fais pour me connecter

[[QBChat instance] addDelegate:self]; QBUser *chatUser=[QBUser new]; chatUser.ID=[[[NSUserDefaults standardUserDefaults] objectForKey:USERID] integerValue]; chatUser.password=[[NSUserDefaults standardUserDefaults] objectForKey:PASSWORD]; [[QBChat instance] connectWithUser:chatUser completion:nil]; 

Pour créer un chatDialog

QBChatDialog * chatDialog = [[QBChatDialog alloc] initWithDialogID: Type NULL: QBChatDialogTypePrivate];

 chatDialog.name = @"Chat with Garry"; NSMutableArray *chatPartners=[[NSMutableArray alloc] initWithObjects:[chatPartner objectForKey:@"id"] ,[[NSUserDefaults standardUserDefaults] objectForKey:USERID], nil]; chatDialog.occupantIDs=chatPartners; [QBRequest createDialog:chatDialog successBlock:^(QBResponse *response, QBChatDialog *createdDialog) { //Success NSDictionary* json = [NSJSONSerialization JSONObjectWithData:response.data options:kNilOptions error:nil]; [[NSUserDefaults standardUserDefaults] setObject:[json object } errorBlock:^(QBResponse *response) { //error }]; 

Puis envoyer un message

 QBChatMessage *message =[QBChatMessage message]; [message setText:self.messageText.text]; params[@"messageStatus"]=@"Test Message"; params[@"save_to_history"] = @YES; [message setCustomParameters:params]; [message setRecipientID:[[[NSUserDefaults standardUserDefaults] objectForKey:PARTNERID] integerValue]]; // [QBRequest createMessage:message successBlock:^(QBResponse *response, QBChatMessage *createdMessage) { self.messageText.text = @"Type Here..."; [self addMessagetoChat:createdMessage]; NSLog(@"success: %@", createdMessage); } errorBlock:^(QBResponse *response) { self.messageText.text = @"Type Here..."; NSLog(@"ERROR: %@", response.error); }]; 

Le message est envoyé au chat mais l'autre user ne peut pas le recevoir. (Void) chatDidReceiveMessage: le message (QBChatMessage *) n'est pas appelé. Ou peut-être que j'utilise la mauvaise fonction.

Vous n'envoyez pas de message, mais vous le créez dans le REST. Donc, le délégué QBChat 'chatDidReceiveMessage' ne sera pas appelé. C'est toujours une chose valide à faire, cependant pour recevoir un tel message, vous devez le download à partir de REST (par exemple, '[QBRequest messagesForDialogID: completionBlock: errorBlock:]').

Pour recevoir des messages via un délégué, vous devez utiliser 'sendMessage: completion:' de QBChatDialog, qui utilise XMPP pour envoyer et recevoir des messages. Dans votre situation, vous devriez faire ceci:

 QBChatMessage *message =[QBChatMessage message]; [message setText:self.messageText.text]; params[@"messageStatus"]=@"Test Message"; params[@"save_to_history"] = @YES; [message setCustomParameters:params]; [message setRecipientID:[[[NSUserDefaults standardUserDefaults] objectForKey:PARTNERID] integerValue]]; [chatDialog sendMessage:message completionBlock:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Failed to send message with error: %@", error); } }];