NanoHttpd / nanohttpd

Tiny, easily embeddable HTTP server in Java.
http://nanohttpd.org
BSD 3-Clause "New" or "Revised" License
6.9k stars 1.69k forks source link

SocketException on Android SDK 26 #569

Open Insalien opened 4 years ago

Insalien commented 4 years ago

Hi,

I noticed that there is a behavior change in the NanoWSD server while upgrading the Android target SDK from 25 to 26. I received a java.net.SocketException: Socket closed even when I sent a message to the server every 30s ({"request":"hb","nonce":1576514028626}) and I sent a broadcast message to all my clients every 5s ("test"). I ran my application in device with Android 8.1.0.

Thanks in advanced for your help.

PS: I would like to post my Java code but there is some error in rendering.

Log messages:

2019-12-16 17:33:18.616 15305-15349/com.test.test I/Server: WS opened
2019-12-16 17:33:19.026 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:24.043 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:29.105 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:34.167 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:39.231 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:44.293 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:48.629 15305-15349/com.test.test D/Server: onMessage: WS[Text, fin, masked, [38b] {"request":"hb","nonce":1576514028626}]
2019-12-16 17:33:49.352 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:54.411 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:33:59.474 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:34:04.533 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:34:09.590 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:34:14.648 15305-15305/com.test.test E/Server: WebsocketServer.broadcastMessage: "test"
2019-12-16 17:34:17.841 15305-15349/com.test.test E/Server: onException
    java.net.SocketException: Socket closed
        at java.net.SocketInputStream.read(SocketInputStream.java:203)
        at java.net.SocketInputStream.read(SocketInputStream.java:139)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:248)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:267)
        at fi.iki.elonen.NanoWSD$WebSocketFrame.read(NanoWSD.java:435)
        at fi.iki.elonen.NanoWSD$WebSocket.readWebsocket(NanoWSD.java:248)
        at fi.iki.elonen.NanoWSD$WebSocket.access$200(NanoWSD.java:65)
        at fi.iki.elonen.NanoWSD$WebSocket$1.send(NanoWSD.java:88)
        at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:957)
        at fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)
        at java.lang.Thread.run(Thread.java:764)
2019-12-16 17:34:17.845 15305-15349/com.test.test I/Server: WS closedInternalServerErrorHandler terminated without closing the connection.