2014-05-12 2 views
0

ios 용 xmpp 프레임 워크를 사용하여 채팅 응용 프로그램을 개발하고 있습니다. 다음과 같은 오류가 발생했습니다. 사실 이미지의 세부 정보를 보낼 수 있습니다. iPhone에서 이미지를 보내면 이미지의 이름과 크기가 표시됩니다. 그러나 그 이미지를 받아들이면 데이터가 전송되지 않습니다.iPhone에서 Xmpp 이미지 전송

2014-05-12 11:08:15:310 iPhoneXMPP[407:5d2f] RECV: <iq xmlns="jabber:client" id="4F89EF6C-4A7B-469C-AF0A-B3AD751C1C5E" to="[email protected]/5d4aec79" from="[email protected]/Spark 2.6.3" type="error"><query xmlns="http://jabber.org/protocol/bytestreams" sid="" mode="tcp"><streamhost jid="proxy.imt-110" host="192.168.0.145" port="7777"/></query><error code="406" type="MODIFY"><not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 
2014-05-12 11:08:15:310 iPhoneXMPP[407:60b] iPhoneXMPPAppDelegate: xmppStream:didReceiveIQ: 

2014-05-12 11:08:15.311 iPhoneXMPP[407:60b] Couldn't set up bytestream for file transfer! --- <TURNSocket: 0xb077140> 

이미지 전송에 대한 내 코드를 참조하십시오.

- (void)sendToOtherDevice:(NSData *)fileData2 receiverJid:(NSString *)receiverJid 
{ 
    XMPPJID *jid = [XMPPJID jidWithString:receiverJid]; 
    if ([jid.domain isEqualToString:@"[email protected]"]) { 
     [TURNSocket setProxyCandidates:[NSArray arrayWithObjects:jid.domain, nil]]; 
    } else { 
     [TURNSocket setProxyCandidates:[NSArray arrayWithObjects:jid.domain, @"[email protected]", nil]]; 
    } 

    TURNSocket *socket = [[TURNSocket alloc] initWithStream:[[self appDelegate] xmppStream] toJID:jid sid:[[self appDelegate] sidVal]]; 
    socket.fileName = @"defaultPerson.png"; 
    socket.fileData = fileData2; 

    [socket startWithDelegate:self delegateQueue:dispatch_get_main_queue()]; 

    [[[self appDelegate] xmppStream] addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

} 

didreceiveIQ 메서드에 아무것도 써야합니까 ?? 내가 스파크에서 받아 들일 때 Coz라고 부릅니다.

미리 감사드립니다.

+0

enter image description here는 fileData2'이 전무 아니었다'경우 확인 했습니까? – Larme

+0

해당 없음 없음 .. 이미지 이름 및 크기를 스파크 얻을 수 있습니다. 이미지에 첨부 된 .. 참조하십시오. – Rythm

+0

TURNSocket의 ** fileName ** 또는 ** fileData ** 특성이 없습니다. ** 그것이 어디서 왔는가? – jaskiratjd

답변

0
NSData *data = UIImageJPEGRepresentation(chosenImage, 1.0); 
NSLog(@"Size of Image(bytes):%lu",(unsigned long)[data length]); 
Base64Transcoder *base64 = [[Base64Transcoder alloc] init]; 
NSString *imgStr = [base64 base64EncodedStringfromData:data]; 


NSXMLElement *ImgAttachement = [NSXMLElement elementWithName:@"attachment"]; 
[ImgAttachement setStringValue:imgStr]; 
NSXMLElement *body = [NSXMLElement elementWithName:@"body"]; 
[body setStringValue:@"image test"]; 


NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; 
[message addAttributeWithName:@"type" stringValue:@"chat"]; 
[message addAttributeWithName:@"to" stringValue:@"[email protected]"]; 

[message addChild:message]; 
[message addChild:ImgAttachement]; 

[[[PDAppDelegate sharedDelegate] xmppStream]sendElement:message];//([[PDAppDelegate sharedDelegate] xmppStream]) that is object of XMPPStream