Hirdetés

Új hozzászólás Aktív témák

  • Kutyauto

    csendes tag

    Sziasztok

    okhttp cuccal csinálom hogy tudjanak kommunikálni az appok egymással egy szerveren keresztül. Secure winsock a megoldás, az ugye teljesen aszinkron.
    A konnektnél azon vakarózom, hogy amikor rányom a konnektálásra és elmegy a request , akkor ugye az adott kiszolgáló vagy válaszol és akkor annak megfelelően a kliens WebsocketListenerjének az onMessage-ben kezelem a dolgot.
    De az is lehet, hogy nem válaszol egyáltalán mert mondjuk nem fut.
    Ilyenkor ugyanott az onFailure fut le. Ez nálam most ilyen...

    override fun onFailure(pwebSocket: WebSocket , t: Throwable, response: Response?) {
    //Log.d(TAG, "onFailure: ${t.message} $response")
    if (t.message?.startsWith("failed to connect to",true)==true) {
    if (webSocket?.pnAttempt!! < 3)
    {
    webSocket?.pnAttempt = webSocket?.pnAttempt!! +1
    webSocket?.ws_connect() // újra próbálkozik, a pnAttemptből látja hányadikszor
    }
    else
    {
    webSocket?.pnAttempt=1
    webSocket?.SocketViewModel?._socketStatus?.postValue(false)
    }
    }
    super.onFailure(pwebSocket, t, response)
    }

    Azt akarom belőle kihozni, hogy N próbálkozásig hívja újra és újra a konnektet. Ilyenkor a ws_connect -ben van lehetőség másik szervert választani egy listából, vagy ha elfogytak a lehetőségek, akkor vége és a státuszt Próbálkozásból Disconnectre állítom a képernyőn.

    Ez működik is, csak a kérdés: az onFailure response paramétere ilyenkor üres, a t: Throwable paraméter t.message tagjából tudom kitalálni, hogy konnekt hiba volt.
    (t.message?.startsWith("failed to connect to",true)==true)

    Nincs ez helyett a szöveg helyett valami egzaktabb hibakód valahol? Már mindent széttúrtam, de én nem találtam jobbat.

    Kicsit tartok tőle, hogy a szöveges érték esetleg megváltozik valamilyen környezetben és akkor elhasal.

Új hozzászólás Aktív témák