0

XMPP プロトコルを使用して 1 対 1 のチャットを行いました。ここで、アプリケーションで画像とビデオを送信したいと思います。ファイル転送について調べましたが、解決策が見つかりませんでした。ソケット接続には以下のコードも使用しました。

これを行うにはどうすればよいかアドバイスをください。

[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 に答える