Опитвам се да разработя приложение за чат, използвайки xmpp framework за ios. Получавам следната грешка. Всъщност мога да изпратя подробностите за изображението. Когато изпратя изображението от моя iPhone на Spark, той показва името и размера на изображението. Но когато приема това изображение, данните не се прехвърлят.
2014-05-12 11:08:15:310 iPhoneXMPP[407:5d2f] RECV: <iq xmlns="jabber:client" id="4F89EF6C-4A7B-469C-AF0A-B3AD751C1C5E" to="rumit@imt-110/5d4aec79" from="paresh@imt-110/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:@"Rumit@imt-110"]) {
[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:jid.domain, nil]];
} else {
[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:jid.domain, @"Rumit@imt-110", 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?? Защото се извиква, когато натисна прием от искра.
Благодаря предварително.
fileData2
не е нула? - person Larme   schedule 12.05.2014