我使用 Jabber Smack API 创建了一个聊天应用程序。我已成功接收文件(来自另一个名为 "Gajim" 的应用程序),但我的上传仅在几秒钟内失败。在“协商”传输状态之后,我得到一个“错误”状态。
我通过提供“完全合格”的 jabber ID 更正了此错误,但现在在我接受来自另一个 (Gajim) 客户端的传输后,传输会无限期地停留在“协商流”中。
我的 swingWorker 类有以下代码:
OutgoingFileTransfer transfer;
@Override
public Void doInBackground() {
transfer = manager.createOutgoingFileTransfer("vedant1811@jabber.org/Gajim");
File uploadFile = fileChooser.getSelectedFile();
try {
transfer.sendFile(uploadFile, "test");
} catch (XMPPException ex) {
System.out.println("sendFile Error");
ex.printStackTrace();
}
while (!transfer.isDone()) {
if (transfer.getStatus().equals(Status.error)) {
transferLabel.setText("ERROR!!! " + transfer.getError());
} else {
transferLabel.setText("Uploading File: " + uploadFile.getName()
+ " STATUS: " + transfer.getStatus());
fileProgressBar.setValue((int) (100 * transfer.getProgress()));
}
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
System.out.println("thread.sleep error");
ex.printStackTrace();
}
}
return null;
}