【问题标题】:iOS with XMPP Client带有 XMPP 客户端的 iOS
【发布时间】: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的消息了吗?

标签: ios objective-c xmppframework


【解决方案1】:

我们试图弄乱那个系统,我认为传递的字符串被剪掉了。有关服务器将接受的大小字符串的信息。我们最终决定创建一个具有消息类型的自定义元素。然后将媒体上传到返回参考 ID 的 s3 存储桶。创建了我们的客户可以根据消息类型处理的参考链接。因此,您在聊天中传输的唯一内容是检索 s3 图像或视频或其他任何内容的 id。它的限制要小得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 2014-05-13
    • 2013-02-14
    • 2015-07-09
    • 2016-03-09
    • 2011-10-05
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多