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.

Другие вопросы по тегам