为啥当其他用户离线时 XMPPOutgoingFileTransfer 失败?
Posted
技术标签:
【中文标题】为啥当其他用户离线时 XMPPOutgoingFileTransfer 失败?【英文标题】:Why XMPPOutgoingFileTransfer fails when other user is offline?为什么当其他用户离线时 XMPPOutgoingFileTransfer 失败? 【发布时间】:2016-08-02 13:16:33 【问题描述】:我正在使用 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"/>
如何将文件数据发送给离线用户。 提前致谢。
【问题讨论】:
【参考方案1】:在 XMPP 中,文件传输是在各方之间协商的。有多种用于文件传输的 XMPP 规范,但为了更好地了解其工作原理,您可以阅读其中之一,例如 XEP-0234 Jingle File Transfer。这基本上是会话启动,即直接在对等方之间或通过代理进行带外数据传输的协商。这是为实时传输而设计的(例如,很像电话,除了这是另一种数据类型)。
有新规范支持通过 HTTP 将文件上传到共享空间并通过链接共享进行下载:XEP-0363 HTTP File Upload。但是,您需要确保您的库和服务器支持它。
【讨论】:
非常感谢@Mickaël。以上是关于为啥当其他用户离线时 XMPPOutgoingFileTransfer 失败?的主要内容,如果未能解决你的问题,请参考以下文章
当用户离线时,Firebase 身份验证会话会持续多长时间?