Java 如何设置AndroidSync WebSocket的超时?
我正在尝试更改默认的AndroidSync websocket初始连接超时30秒。这是具有默认超时的工作版本:Java 如何设置AndroidSync WebSocket的超时?,java,android,websocket,androidasync-koush,Java,Android,Websocket,Androidasync Koush,我正在尝试更改默认的AndroidSync websocket初始连接超时30秒。这是具有默认超时的工作版本: AsyncHttpClient.getDefaultInstance().websocket(connectionURI.toString(), null, this); 我想更改超时时间。这就是我期望的工作: int timeout_ms = 20000; AsyncHttpGet request = new AsyncHttpGet(connectionURI.toString(
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 middleware=[com.koushikdutta.async.http。HttpTransportMiddleware@1e2543c8,com.koushikdutta.async.http.spdy。SpdyMiddleware@2534fc61,com.koushikdutta.async.http。AsyncSocketMiddleware@107b3386]
请注意,完全相同的connectionURI字符串在第一种情况下是成功的,但在第二种情况下不是成功的
有没有办法更改AndroidSync websocket的超时时间?这似乎是Koush未解决的问题
这个黑客帮了我的忙。你需要通过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);
此问题与超时问题的关系如何?