As soon as I turn off the server, in the android client I get this error.
12-05 13:49:30.399 13954-14763/ru.exodus.lorehub E/AndroidRuntime: FATAL EXCEPTION: EventThread Process: ru.exodus.lorehub, PID: 13954 io.reactivex.exceptions.UndeliverableException: io.socket.engineio.client.EngineIOException: xhr poll error at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:349) at io.reactivex.internal.operators.completable.CompletableCreate$Emitter.onError(CompletableCreate.java:77) at ru.themax.rxsocket.RxSocket.lambda$null$1(RxSocket.java:47) at ru.themax.rxsocket.RxSocket$$Lambda$11.call(Unknown Source) at io.socket.emitter.Emitter$OnceListener.call(Emitter.java:164) at io.socket.emitter.Emitter.emit(Emitter.java:117) at io.socket.client.Socket.access$601(Socket.java:24) at io.socket.client.Socket$5.run(Socket.java:186) at io.socket.thread.EventThread.exec(EventThread.java:55) at io.socket.client.Socket.emit(Socket.java:182) at io.socket.client.Manager.emitAll(Manager.java:166) at io.socket.client.Manager.access$600(Manager.java:30) at io.socket.client.Manager$1$3.call(Manager.java:306) at io.socket.emitter.Emitter.emit(Emitter.java:117) at io.socket.engineio.client.Socket.onError(Socket.java:820) at io.socket.engineio.client.Socket.access$900(Socket.java:36) at io.socket.engineio.client.Socket$4.call(Socket.java:340) at io.socket.emitter.Emitter.emit(Emitter.java:117) at io.socket.engineio.client.Transport.onError(Transport.java:64) at io.socket.engineio.client.transports.PollingXHR.access$100(PollingXHR.java:26) at io.socket.engineio.client.transports.PollingXHR$6$1.run(PollingXHR.java:140) at io.socket.thread.EventThread$2.run(EventThread.java:80) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) Caused by: io.socket.engineio.client.EngineIOException: xhr poll error at io.socket.engineio.client.Transport.onError(Transport.java:63) at io.socket.engineio.client.transports.PollingXHR.access$100(PollingXHR.java:26) at io.socket.engineio.client.transports.PollingXHR$6$1.run(PollingXHR.java:140) at io.socket.thread.EventThread$2.run(EventThread.java:80) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) Caused by: java.net.ConnectException: Failed to connect to /46.173.218.234:80 at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:225) at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:149) at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:195) at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121) at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185) at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135) at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) Caused by: java.net.ConnectException: failed to connect to /46.173.218.234 (port 80) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused) at libcore.io.IoBridge.isConnected(IoBridge.java:234) at libcore.io.IoBridge.connectErrno(IoBridge.java:171) at libcore.io.IoBridge.connect(IoBridge.java:122) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452) at java.net.Sock I connect to the socket like this:
public void authServer(){ socket.connect() .observeOn(Schedulers.io()) .subscribeOn(AndroidSchedulers.mainThread()) .subscribe(() -> { listenForErrors(); //Вот здесь запускаю метод отлавливания view.showAuthFragment(); }, throwable -> { view.showErrorFragment(null); throwable.printStackTrace(); }); } I'm trying to catch her like this:
private void listenForErrors(){ socket.on(Socket.EVENT_ERROR) .observeOn(Schedulers.io()) .subscribeOn(AndroidSchedulers.mainThread()) .subscribe(objects -> { view.showError("Ошибка соединения!"); view.showErrorFragment(null); socket.off(Socket.EVENT_ERROR); socket.disconnect(); }); } This is an improved socket library with RxJava support. The error does not crash in the code, but somewhere inside, so the usual try - catch I can not catch it, how to fix it?