0

我已经使用 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
{
}

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

谢谢。

4

2 回答 2

5

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

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

于 2013-08-20T05:09:37.643 回答
4

尝试这个...

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]; 

我希望这能帮到您...

于 2013-08-20T05:15:20.183 回答