带有 XMPP 客户端的 iOS
Posted
技术标签:
【中文标题】带有 XMPP 客户端的 iOS【英文标题】:iOS with XMPP Client 【发布时间】:2016-01-11 09:23:09 【问题描述】:我想传输图像和视频。我可以传输文本但无法传输文件。
这是传输文件的代码 -
NSString *messageStr = self.textView.text;
UIImage *imagePic = [UIImage imageNamed:@"apple.png"];
if ([messageStr length] > 0 || [imagePic isKindOfClass:[UIImage class]])
NSXMLElement *body = [NSXMLElement elementWithName: @"body"];
[body setStringValue:messageStr];
NSMutableDictionary *m = [[NSMutableDictionary alloc]init];
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:self.rosterJid];
[message addChild:body];
if ([imagePic isKindOfClass:[UIImage class]])
[m setObject:imagePic forKey:@"image"];
NSData *dataPic = UIImagePNGRepresentation(imagePic);
NSXMLElement *photo = [NSXMLElement elementWithName:@"PHOTO"];
NSXMLElement *binval = [NSXMLElement elementWithName:@"BINVAL"];
[photo addChild:binval];
NSString *base64String = [dataPic base64EncodedStringWithOptions:0];
[binval setStringValue:base64String];
[message addChild:photo];
[[[self appDelegate] xmppStream] sendElement: message];
self.textView.text = @"";
如何接收文件? 提前致谢
【问题讨论】:
你收到didRecieveMessage
的消息了吗?
【参考方案1】:
我们试图弄乱那个系统,我认为传递的字符串被剪掉了。有关服务器将接受的大小字符串的信息。我们最终决定创建一个具有消息类型的自定义元素。然后将媒体上传到返回参考 ID 的 s3 存储桶。创建了我们的客户可以根据消息类型处理的参考链接。因此,您在聊天中传输的唯一内容是检索 s3 图像或视频或其他任何内容的 id。它的限制要小得多。
【讨论】:
以上是关于带有 XMPP 客户端的 iOS的主要内容,如果未能解决你的问题,请参考以下文章