gpt4 book ai didi

java - XML 响应时间 ejabberd

转载 作者:行者123 更新时间:2023-11-30 11:21:02 26 4
gpt4 key购买 nike


目前,我正在尝试开发用于即时消息传递的 Android 应用程序。我想在 Ubuntu 服务器上为此使用 ejabberd。只有一个问题。当我首先尝试使用此 xml 行连接到我的 ejabberd 时:
<stream:stream to='x.x.x.x' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>
收到答案需要很长时间(大约 20 秒,有时更长)。当我向服务器发送一些“好”数据时,我遇到了这个问题。发送一些“坏”数据,我很快收到错误消息。

它由 Android IntentService 执行我也会在这里发布我的代码:属性:

private Socket socket;
private String host = "x.x.x.x";
private int port = 5222;
private OutputStream out = null;
private String in = null;

doInBackground():

this.socket = new Socket(host,port);
if(!this.socket.isConnected()){
Log.e("Socket","Socket nicht geöffnet");
}else{
Log.e("Socket","Socket erfolgreich geöffnet");

//create output stream
try {
this.out = socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}

//write to output stream
StringBuffer stringbuffer = new StringBuffer();
stringbuffer.append("<stream:stream to='5.175.8.41' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>");

//convert into bits and give it to outputstream
try {
this.out.write(String.valueOf(stringbuffer).getBytes("UTF-8"),0,String.valueOf(stringbuffer).getBytes().length);
out.flush();
Log.e("Connecting-out","Erstes Tupel erfolgreich gesendet.");
} catch (IOException e) {
e.printStackTrace();
}


//receive the answer from server
try {
Log.e("lol","lol");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"),200);
StringBuilder builder = new StringBuilder();
String aux;
aux = in.readLine();


this.in = builder.toString();
Log.e("...",aux);



} catch (IOException e) {

e.printStackTrace();
}

Log.e("Connecting-in",in);


我认为尤其是这些行

StringBuilder builder = new StringBuilder();
String aux;
aux = in.readLine();


this.in = builder.toString();

需要很长时间。但奇怪的是,错误信息的读取速度非常快。所以它必须是服务器?

有人可以帮帮我吗?提前致谢:)

最佳答案

您使用了 readLine() 并等待换行符。

出错时,服务器通常会断开连接。这就是为什么您会立即得到错误答案的原因。

我建议你不要使用 readLine()

关于java - XML 响应时间 ejabberd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22423862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com