gpt4 book ai didi

java - 如何为 AndroidAsync Websocket 设置超时?

转载 作者:行者123 更新时间:2023-12-01 06:23:35 26 4
gpt4 key购买 nike

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

最佳答案

这个 hack 帮助了我。你需要传递 http 或 htpps 协议(protocol)。

    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);

关于java - 如何为 AndroidAsync Websocket 设置超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548199/

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