使用XMPP ejabberd服务器处理聊天应用程序,这里我无法获得图片上传插槽,这是用于服务器上传附件的文档(http://xmpp.org/extensions/xep-0363.html)
这是我的代码,我的问题是在请求使用此代码后没有任何来自服务器的响应没有发生我的服务器工作我能够发送短信,请帮助。
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 :(得分:2)
您是否还安装了ejabberd扩展程序?您应该参考此问题,而不是如何设置扩展程序:HTTP File Upload (XEP-0363)。您可以从管理面板检查是否已启用该模块。
但是,我个人不会使用ejabberd来托管文件。在过去,我已将文件上传到标准Apache服务器,然后通过XMPP发送图像URL。这样做有好处,因为它可以让您更好地控制文件。例如,您可以使用AWS来托管文件,然后通过CDN分发它们。