XEP-0363: загрузка файла HTTP в Swift
Работая над приложением чата с сервером 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)
1 ответ
Вы также установили расширение ejabberd? Вы должны обратиться к этому вопросу не как настроить расширение: HTTP File Upload (XEP-0363). Вы проверяете, что модуль включен с панели администратора.
Однако лично я бы не использовал ejabberd для размещения файлов. В прошлом я загружал файлы на стандартный сервер Apache, а затем просто отправлял URL-адрес изображения через XMPP. Это имеет свои преимущества, поскольку дает вам гораздо больший контроль над файлами. Например, вы можете использовать AWS для размещения файлов, а затем распространять их по CDN.