我在Android应用程序上以及服务器端使用Smack 4.1.7。
我想将文件从手机传输到服务器,所以我在手机上使用以下代码:
FileTransferNegotiator.IBB_ONLY = true;
FileTransferManager fileTransferManager = FileTransferManager.getInstanceFor(connection);
OutgoingFileTransfer transfer = fileTransferManager.createOutgoingFileTransfer("fulljid");
transfer.sendFile(file);
并在服务器端:
FileTransferNegotiator.IBB_ONLY = true;
fileTransferManager = FileTransferManager.getInstanceFor(xmppConnection);
fileTransferManager.addFileTransferListener(new FileTransferListener() {
public void fileTransferRequest(FileTransferRequest request) {
IncomingFileTransfer fileTransfer = fileTransferRequest.accept();
File file = new File("destinationpath");
fileTransfer.receiveFile(file);
}
});
如果我有IBB_ONLY = true行,它就能正常工作;在我的代码中,但我不知道为什么 - 谁能告诉我?
接下来的问题是:从手机上传大约200kB到服务器需要两分钟多的时间。例如,相同的文件甚至不需要5秒钟上传到Dropbox。这是因为IBB_ONLY还是还有其他问题?
感谢您的帮助!
更新: 有没有更好的方法呢?