2016-08-02 4 views
0

파일 데이터를 전송하는 데 XMPPOutgoingFileTransfer 및 XMPPIncomingFileTransfer를 사용하고 있습니다. 두 사용자가 온라인 상태 일 때 파일 데이터를 보낼 수 있습니다. 그러나 한 사용자가 오프라인으로 갈 때 파일 데이터를 보내지 못하고 다음과 같은 대리인이 호출됩니다.다른 사용자가 오프라인 일 때 XMPPOutgoingFileTransfer가 실패하는 이유는 무엇입니까?

- (void)xmppOutgoingFileTransfer:(XMPPOutgoingFileTransfer *)sender 
      didFailWithError:(NSError *)error 

그리고 오류가 난 오프라인 사용자에게 파일 데이터를 보낼 수있는 방법

Error Domain=XMPPOutgoingFileTransferErrorDomain Code=503 "<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>" UserInfo={NSLocalizedDescription=<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>} 

입니다. 미리 감사드립니다.

답변

3

XMPP에서 파일 전송은 당사자간에 협상됩니다. 파일 전송을위한 몇 가지 XMPP 사양이 있지만 작동 방식에 대해 더 잘 이해하려면 XEP-0234 Jingle File Transfer과 같은 형식 중 하나를 읽을 수 있습니다. 이는 기본적으로 세션 개시 (Session Initiation)입니다. 즉, 피어 간 또는 프록시를 통해 직접 대역 외 (out-of-band) 데이터 전송 협상입니다. 이것은 실시간 전송을 위해 설계되었습니다 (예 : 전화 통화와 비슷하지만 다른 유형의 데이터는 제외).

HTTP 및 링크 공유를 통해 파일을 공유 공간에 업로드하여 다운로드하려면 새로운 사양이 있습니다 (XEP-0363 HTTP File Upload). 그러나 라이브러리와 서버가이를 지원하는지 확인해야합니다.

+0

감사합니다. @ Mickaël. – Sujit