2016-12-30 14 views
1

でのファイルのアップロードは、ここで私は画像のアップロードのためのスロットを取得することはできないのですが、これはXEP-0363:HTTP 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

ファイルを目的に応じてアップロードすることができますか?サンプルコードを提供するか、またはxep - 0363のアイデアを与える。私はこれに多くのressarchを持っているが、何も動作していない –

答えて

1

ejabberd拡張機能もインストールしましたか?この質問には、拡張子を設定する方法はありません。HTTP File Upload (XEP-0363)を参照してください。管理パネルからモジュールが有効になっていることを確認します。

しかし、個人的には、ファイルをホストするためにejabberdを使用しません。過去に私はファイルを標準のApacheサーバーにアップロードし、XMPP経由で画像URLを送信しました。これは、ファイルをより詳細に制御できるため、利点があります。たとえば、AWSを使用してファイルをホストし、CDNを介して配布することができます。

関連する問題