我使用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
{
}
每次连接失败方法调用..
感谢。
答案 0 :(得分:4)
您需要将图像推送到服务器,然后您将从服务器上显示一个URL。然后您可以通过xmpp协议将URL发送到另一台设备。到底。通过收到的URL从服务器下载图像。
xmpp也可以发送图片。但这对于xmpp服务器来说是一个很大的xml消息。这不是一个很好的解决方案。
答案 1 :(得分: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];
我希望这会对你有帮助......