XEP-0363:HTTP斯威夫特

问题描述:

文件上传与XMPP ejabberd服务器聊天应用程序的工作,我在这里无法得到槽的上传图片,这是上传附件的文档(http://xmpp.org/extensions/xep-0363.html)在服务器XEP-0363:HTTP斯威夫特

这里这是我的代码,我的问题是请求后,此代码没有任何反应从服务器没有任何事情发生我的服务器正在工作,我可以发送短信,请帮助。

 let iqRequest = DDXMLElement.element(withName: "iq") as! DDXMLElement 

     iqRequest.addAttribute(withName: "from", stringValue: sender.myJID.full()) 
     iqRequest.addAttribute(withName: "id", stringValue: messageID!) 
     iqRequest.addAttribute(withName: "type", stringValue: "get") 
     iqRequest.addAttribute(withName: "to", stringValue: "upload.hostname") 

     let requestElement = DDXMLElement.element(withName: "request", uri: "urn:xmpp:http:upload") as! DDXMLElement 

     let fileNameElement = DDXMLElement.element(withName: "filename") as! DDXMLElement 
     fileNameElement.stringValue = "imageName.png" 

     let sizeElement = DDXMLElement.element(withName: "size") as! DDXMLElement 
     sizeElement.stringValue = "23456" 

     requestElement.addChild(fileNameElement) 
     requestElement.addChild(sizeElement) 


     iqRequest.addChild(requestElement) 
     sender.send(iqRequest) 
+0

你能帮我上传目标文件吗?提供示例代码或提供xep - 0363的想法。我有这么多ressarch在此但不工作任何东西 –

您是否还安装了ejabberd扩展?你应该参考这个问题没有如何设置扩展:HTTP File Upload (XEP-0363)。您检查是否从管理面板启用了该模块。

但是,我个人不会使用ejabberd来托管这些文件。在过去,我已经将文件上传到标准的Apache服务器,然后通过XMPP发送图像URL。这有好处,因为它使您可以更好地控制文件。例如,您可以使用AWS来托管这些文件,然后通过CDN分发这些文件。