Andriod solves the problem caused by SignalR confusion

question

SignalR depends on:

implementation 'com.microsoft.signalr:signalr:5.0.3'

When using SignalR for real-time communication, the program runs fine in debug installation mode. After packaging and publishing, the operation reports an error:

03-06 15:02:50.504 13121-13158/? I/c.e.a.z1: WebSocket transport connected to: ws://192.168.1.137:8066/messagehub?id=2--aL0lysu5pheJNLJuC6w.
03-06 15:02:50.510 13121-13158/? I/c.e.a.v0: HubConnection started.
03-06 15:02:50.511 13121-13158/? I/c.e.a.l1: WebSocket closing with status code '1000' and reason ''.
03-06 15:02:50.512 13121-13158/? I/c.e.a.v0: HubConnection stopped.
03-06 15:02:50.514 13121-13522/? E/c.e.a.l1: WebSocket closed from an error.
    java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer)
        at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:549)
        at libcore.io.IoBridge.sendto(IoBridge.java:518)
        at java.net.HwPlainSocketImpl.write(HwPlainSocketImpl.java:1129)
        at java.net.HwPlainSocketImpl.access$1500(HwPlainSocketImpl.java:63)
        at java.net.HwPlainSocketImpl$PlainSocketOutputStream.write(HwPlainSocketImpl.java:887)
        at okio.Okio$1.write(Okio.java:5)
        at okio.AsyncTimeout$1.write(AsyncTimeout.java:6)
        at okio.RealBufferedSink.emit(RealBufferedSink.java:3)
        at f.i0.m.d.a(WebSocketWriter.java:35)
        at f.i0.m.d$a.close(WebSocketWriter.java:2)
        at okio.RealBufferedSink.close(RealBufferedSink.java:4)
        at f.i0.m.a.d(RealWebSocket.java:29)
        at f.i0.m.a$a.run(RealWebSocket.java:1)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
        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:833)
     Caused by: android.system.ErrnoException: sendto failed: ECONNRESET (Connection reset by peer)
        at libcore.io.Posix.sendtoBytes(Native Method)
        at libcore.io.Posix.sendto(Posix.java:211)
        at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:278)
        at libcore.io.IoBridge.sendto(IoBridge.java:516)
        at java.net.HwPlainSocketImpl.write(HwPlainSocketImpl.java:1129) 
        at java.net.HwPlainSocketImpl.access$1500(HwPlainSocketImpl.java:63) 
        at java.net.HwPlainSocketImpl$PlainSocketOutputStream.write(HwPlainSocketImpl.java:887) 
        at okio.Okio$1.write(Okio.java:5) 
        at okio.AsyncTimeout$1.write(AsyncTimeout.java:6) 
        at okio.RealBufferedSink.emit(RealBufferedSink.java:3) 
        at f.i0.m.d.a(WebSocketWriter.java:35) 
        at f.i0.m.d$a.close(WebSocketWriter.java:2) 
        at okio.RealBufferedSink.close(RealBufferedSink.java:4) 
        at f.i0.m.a.d(RealWebSocket.java:29) 
        at f.i0.m.a$a.run(RealWebSocket.java:1) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269) 
        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:833) 
03-06 15:02:50.514 13121-13522/? E/c.e.a.v0: 'stopConnection' called with a null ConnectionState. This is not expected, please file a bug. https://github.com/dotnet/aspnetcore/issues/new?assignees=&labels=&template=bug_report.md

reason

During the packaging and publishing process, the SignalR library file com.microsoft.signalr was confused, which led to an exception during operation.

Solution

Add to proguard's obfuscation rules:

-keep class com.microsoft.**{*;}

Problem solved!

Guess you like

Origin blog.csdn.net/hanshiying007/article/details/114454005