为什么 XMPPOutgoingFileTransfer 在其他用户离线时失败?

Why XMPPOutgoingFileTransfer fails when other user is offline?

我正在使用 XMPPOutgoingFileTransfer 和 XMPPIncomingFileTransfer 来传输文件数据。当两个用户都在线时,我可以发送文件数据。但是当任何一个用户离线时,它无法发送文件数据并调用以下委托。

    - (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"/>}

如何将文件数据发送给离线用户。 提前致谢。

在 XMPP 中,文件传输是在各方之间协商的。文件传输有多种 XMPP 规范,但要更好地了解其工作原理,您可以阅读其中一种,例如 XEP-0234 Jingle File Transfer。这基本上是会话启动,即直接在对等方之间或通过代理协商带外数据传输。这是为实时传输而设计的(例如,很像 phone 调用,只是这是另一种类型的数据)。

有新规范支持通过 HTTP 将文件上传到共享 space 和 link 共享以下载文件:XEP-0363 HTTP File Upload。但是,您需要确保您的图书馆和服务器支持它。