我正在尝试将默认的AndroidAsync websocket初始连接超时更改为30秒。这是具有默认超时的工作版本:
AsyncHttpClient.getDefaultInstance().websocket(connectionURI.toString(), null, this);
我想更改超时。这是我期望的工作:
int timeout_ms = 20000;
AsyncHttpGet request = new AsyncHttpGet(connectionURI.toString());
request.setTimeout(timeout_ms);
AsyncHttpClient.getDefaultInstance().websocket(request, null, this);
这会产生java.lang.IllegalArgumentException: invalid uri=ws://exampleserver.com:80/test middlewares=[com.koushikdutta.async.http.HttpTransportMiddleware@1e2543c8, com.koushikdutta.async.http.spdy.SpdyMiddleware@2534fc61, com.koushikdutta.async.http.AsyncSocketMiddleware@107b3386]
请注意,在第一种情况下,完全相同的connectionURI字符串是成功的,但不是第二种情况。
有没有办法改变AndroidAsync websocket的超时?
答案 0 :(得分:0)
这个黑客帮助了我。你需要传递http或htpps协议。
AsyncHttpGet request = new AsyncHttpGet("ws://xxx.xxx.x.xx:8500".replace("ws://", "http://").replace("wss://", "https://"));
request.setTimeout(3000);
AsyncHttpClient asyncHttpClient = AsyncHttpClient.getDefaultInstance();
asyncHttpClient.websocket(request, null, webSocketConnectCallback);
答案 1 :(得分:-2)
Koush似乎没有解决问题 https://github.com/koush/AndroidAsync/issues/340