2016-08-02 102 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。這基本上是會話初始化,即直接在對等體之間或通過代理進行帶外數據傳輸的協商。這是專爲實時傳輸而設計的(就像電話一樣,除了這是另一種類型的數據)。

有新規範支持通過HTTP將文件上傳到共享空間,並鏈接共享以下載文件:XEP-0363 HTTP File Upload。但是,您需要確保您的庫和服務器支持它。

+0

非常感謝@米凱爾。 – Sujit