XMPP资源id在登录多个设备时发生更改
我使用相同的用户id和密码登录了两台设备,因此当目标设备向客户端发送语音或图像时,一台设备收到目标消息,而另一台设备没有收到目标消息。因为在两个设备中登录时,资源id正在更改。其显示错误消息503() //---我将发送一个字符串形式的图像,它为我工作XMPP资源id在登录多个设备时发生更改,xmpp,http-status-code-503,Xmpp,Http Status Code 503,我使用相同的用户id和密码登录了两台设备,因此当目标设备向客户端发送语音或图像时,一台设备收到目标消息,而另一台设备没有收到目标消息。因为在两个设备中登录时,资源id正在更改。其显示错误消息503() //---我将发送一个字符串形式的图像,它为我工作 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
CGFloat maxCompression = 0.1f;
UIImage * getimage =[self imageWithImage:[info objectForKey:UIImagePickerControllerOriginalImage]];
NSData *imageData = UIImageJPEGRepresentation(getimage, maxCompression);
NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss Z"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
//--- convert image to string -----
NSString* imageString = [imageData base64EncodedStringWithOptions:0];
//---- new change --
imageString = [imageString stringByAppendingString:@".IMAGE"];
//-------------
if ([imageString length] > 0)
{
[dbHandler insertChatHistory:imageString imageData:nil receiveType:2 mediaType:1 receiverName:titleName date:dateString];
NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
[body setStringValue:imageString];
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:receiver]; //--- jenish ---
[message addChild:body];
[self.xmppStream sendElement:message];
[messageType addObject:@"1"];
[messageArray addObject:[NSDictionary dictionaryWithObject:imageString forKey:@"Text"]];
[self.timestamps addObject:[NSDate date]];
}
[self finishSend];
[JSMessageSoundEffect playMessageSentSound];
[self scrollToBottomAnimated:YES];
[self reloadMessages];
[self dismissViewControllerAnimated:YES completion:NULL];
}
这篇文章没有一个问题。请更新你的帖子。XMPP Resourceparts对于每个连接/设备都是唯一的。更改资源是预期行为。根据您的XMPP配置,您可以配置路由,将pachet推送到给定目标地址的每个资源(例如,Openfire具有这种配置功能)
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
CGFloat maxCompression = 0.1f;
UIImage * getimage =[self imageWithImage:[info objectForKey:UIImagePickerControllerOriginalImage]];
NSData *imageData = UIImageJPEGRepresentation(getimage, maxCompression);
NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss Z"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
//--- convert image to string -----
NSString* imageString = [imageData base64EncodedStringWithOptions:0];
//---- new change --
imageString = [imageString stringByAppendingString:@".IMAGE"];
//-------------
if ([imageString length] > 0)
{
[dbHandler insertChatHistory:imageString imageData:nil receiveType:2 mediaType:1 receiverName:titleName date:dateString];
NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
[body setStringValue:imageString];
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:receiver]; //--- jenish ---
[message addChild:body];
[self.xmppStream sendElement:message];
[messageType addObject:@"1"];
[messageArray addObject:[NSDictionary dictionaryWithObject:imageString forKey:@"Text"]];
[self.timestamps addObject:[NSDate date]];
}
[self finishSend];
[JSMessageSoundEffect playMessageSentSound];
[self scrollToBottomAnimated:YES];
[self reloadMessages];
[self dismissViewControllerAnimated:YES completion:NULL];
}