【问题标题】:XMPPFramework - How to transfer image from one device to another?XMPPFramework - 如何将图像从一台设备传输到另一台设备?
【发布时间】:2013-08-20 04:55:10
【问题描述】:

我已经使用 XMPP 协议进行了一对一的聊天。现在,我想在我的应用程序中发送图像和视频。我研究了文件传输,但没有找到解决方案。我也使用下面的代码进行 Socket 连接。

请告诉我如何去做。

[TURNSocket setProxyCandidates:@[@"MyserverHost-desktop"]];

XMPPJID *jid = [XMPPJID jidWithString:@"1254225445@MyserverHost-desktop"];

TURNSocket *turnSocket = [[TURNSocket alloc] initWithStream:[[self appDelegate]xmppStream] toJID:jid];

[app.turnSocketArray addObject:turnSocket];
[turnSocket startWithDelegate:self delegateQueue:dispatch_get_main_queue()];
[turnSocket release];

- (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket
{
}

- (void)turnSocketDidFail:(TURNSocket *)sender
{
}

每次连接失败方法调用..

谢谢。

【问题讨论】:

  • 你好...@Shree 我也在使用 xmpp 制作聊天应用程序。我正在尝试将图像、视频和其他文件发送给另一个用户。你有没有找到任何解决方案然后请帮助我..

标签: ios objective-c xmpp xmppframework


【解决方案1】:

您需要将图像推送到服务器,然后您将从服务器接收一个 url。然后您可以通过 xmpp 协议将 url 发送到另一台设备。到底。通过接收到的url从服务器下载图片。

xmpp 也可以发送图片。但这对于 xmpp 服务器来说是一个很大的 xml 消息。这不是一个很好的解决方案。

【讨论】:

    【解决方案2】:

    试试这个……

    NSData *dataF = UIImagePNGRepresentation(SendImage);
    NSString *imgStr=[dataF base64Encoding];
    
    NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
    [body setStringValue:messageStr];
    
    NSXMLElement *imgAttachement = [NSXMLElement elementWithName:@"attachment"];
    [imgAttachement setStringValue:imgStr];
    
    NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
    [message addAttributeWithName:@"type" stringValue:@"chat"];
    [message addAttributeWithName:@"to" stringValue:chatWithUser];
    [message addChild:body];
    [message addChild:imgAttachement];      
    
    [self.xmppStream sendElement:message]; 
    

    希望对你有帮助……

    【讨论】:

    • 我正在使用您的代码,但它只发送正文消息而不是附件。我正在使用 ejabberd
    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2020-12-05
    • 2013-05-23
    相关资源
    最近更新 更多