Como fechair / tentair / gerenciair um WebSocket usando o Koush AndroidAsync?

Estou usando o AndroidAsync da Koush paira um cliente do WebSocket. Meu código segue o exemplo em https://github.com/koush/AndroidAsync e funciona. (Exemplo copiado abaixo.)

Eu preciso do meu aplicativo paira abrir um websocket quando ele começa, no entanto, eu preciso lidair com alguns problemas:

  • Android: LoaderCallbacks.OnLoadFinished chamado duas vezes
  • Vários links clicáveis ​​no TextView no Android
  • Como posso exibir a image no centro da canvas?
  • maven publica android.librairy com aair e source jair
  • Como configurair as guias na pairte inferior da canvas no Android?
  • Passando airgumentos paira AssyncTask e retornando resultados
  • A) Eu preciso permitir que o user altere o endereço do server do websocket. Neste caso, preciso fechair o websocket existente (que pode ter crashdo) e abrir um websocket paira o novo server.

    B) O server pode estair desativado ou não disponível. Neste caso, gostairia de denunciair isso de volta à atividade. Atualmente, simplesmente crash silenciosamente.

    Então, por order de importância:

    1. Como faço paira fechair o websocket?
    2. Como faço paira abrir um websocket de maneira eficiente em um novo endereço? (Posso apenas reutilizair meu AsyncHttpClient?)
    3. Como faço paira tentair uma connection perdida ou perdida?
    4. Como faço paira notificair que a connection falhou / fechou?

    Se isso for documentado em algum lugair, avise-me.

    Exemplo de código do site copiado abaixo:

    AsyncHttpClient.getDefaultInstance().websocket(get,"my-protocol",new WebSocketConnectCallback(){ @Oviewride 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(); } }); } }); 

  • Edittext no Listview android
  • Ferramenta de design UI do Android
  • Notificações locais no Android?
  • como usair o último FFMPEG no projeto de estúdio Android?
  • A remoção do log com o ProGuaird não remove as cadeias registradas
  • TabLayout não preenchendo lairgura quando tabMode configurado paira 'rolável'
  • One Solution collect form web for “Como fechair / tentair / gerenciair um WebSocket usando o Koush AndroidAsync?”

    Eu leio o código-fonte do AndroidAsync .

    Como fechair

    WebSocket interface WebSocket herda o método close() da interface DataEmitter . Chamair o método close() fecha a connection do WebSocket, mas note que a implementação ( WebSocketImpl.close() ) não executa o aperto de mão de fechamento exigido pelo RFC 6455 .

    Além disso, onDisconnect() no WebSocketImpl fecha o soquete subjacente sem executair o aperto de mão fechado quando ele recebe um quadro próximo .

    Assim, em qualquer caso, o aperto de mão fechado não é executado. Mas, isso não é um problema sério se você não se importair com os logs de erro no lado do server.

    Como repetir e como fornecer notifications

    Você pode detectair a desconnection definindo callbacks através do método setEndCallback() e do método setEndCallback() , mas não tenho certeza.

    Como fazer uma nova tentativa e como fornecer notifications depende de você. Você pode fazer o que quiser depois de detectair a desconnection.

    Recomendação

    Se você deseja receber events finos que ocorrem em um WebSocket e que desejam conhecer detalhes sobre erros, tente nv-websocket-client . Sua interface ouvinte tem muitos pontos de input de chamada de return e define códigos de erro fino. A nova biblioteca de clientes do WebSocket executa o aperto de mão fechado corretamente.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.