我正在使用Koush的AndroidAsync作为WebSocket客户端。我的代码遵循https://github.com/koush/AndroidAsync上的示例,并且可以正常工作。(以下是示例代码)
我需要在应用程序启动时打开一个WebSocket,但是我需要处理一些问题:
A)我需要允许用户更改WebSocket服务器的地址。在这种情况下,我需要关闭现有的WebSocket(可能失败),并打开到新服务器的WebSocket。
B)服务器可能停机或不可用。在这种情况下,我想将其报告给活动。目前它只是悄悄地失败了。
所以按重要性顺序:
1.如何关闭WebSocket?
2.如何高效地打开到新地址的WebSocket?(我可以重用我的AsyncHttpClient吗?)
3.如何在连接失败或丢失时重试?
4.如何提供连接失败/关闭的通知?
如果此处有文档,请告诉我。
以下是从网站复制的示例代码:
我需要在应用程序启动时打开一个WebSocket,但是我需要处理一些问题:
A)我需要允许用户更改WebSocket服务器的地址。在这种情况下,我需要关闭现有的WebSocket(可能失败),并打开到新服务器的WebSocket。
B)服务器可能停机或不可用。在这种情况下,我想将其报告给活动。目前它只是悄悄地失败了。
所以按重要性顺序:
1.如何关闭WebSocket?
2.如何高效地打开到新地址的WebSocket?(我可以重用我的AsyncHttpClient吗?)
3.如何在连接失败或丢失时重试?
4.如何提供连接失败/关闭的通知?
如果此处有文档,请告诉我。
以下是从网站复制的示例代码:
AsyncHttpClient.getDefaultInstance().websocket(get,"my-protocol",new WebSocketConnectCallback(){
@Override
public void onCompleted(Exception ex,WebSocket webSocket){
if(ex!=null){
ex.printStackTrace();
return;
}
webSocket.send("a string");
webSocket.send(new byte[10]);
webSocket.setStringCallback(new StringCallback(){
public void onStringAvailable(String s){
System.out.println("I got a string: "+s);
}
});
webSocket.setDataCallback(new DataCallback(){
public void onDataAvailable(ByteBufferList byteBufferList){
System.out.println("I got some bytes!");
// note that this data has been read
byteBufferList.recycle();
}
});
}
});