1

我正在尝试将默认的 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 的超时时间?

4

2 回答 2

0

这个hack帮助了我。你需要通过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);
于 2017-02-07T15:41:39.273 回答
-2

这似乎是 Koush https://github.com/koush/AndroidAsync/issues/340未解决的问题

于 2015-12-16T13:44:47.163 回答