diff --git a/src/com/wentch/redkale/net/http/WebSocketRunner.java b/src/com/wentch/redkale/net/http/WebSocketRunner.java index 7d30f4093..2e8c02ecc 100644 --- a/src/com/wentch/redkale/net/http/WebSocketRunner.java +++ b/src/com/wentch/redkale/net/http/WebSocketRunner.java @@ -119,14 +119,18 @@ public class WebSocketRunner implements Runnable { channel.read(readBuffer, null, this); } webSocket.group.setRecentWebSocket(webSocket); - if (packet.type == PacketType.TEXT) { - webSocket.onMessage(packet.getPayload()); - } else if (packet.type == PacketType.BINARY) { - webSocket.onMessage(packet.getBytes()); + try { + if (packet.type == PacketType.TEXT) { + webSocket.onMessage(packet.getPayload()); + } else if (packet.type == PacketType.BINARY) { + webSocket.onMessage(packet.getBytes()); + } + } catch (Exception e) { + context.getLogger().log(Level.INFO, "WebSocket onMessage error (" + packet + ")", e); } - } catch (Exception e) { + } catch (Throwable t) { closeRunner(); - if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read WebSocketPacket, force to close channel", e); + if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read WebSocketPacket, force to close channel", t); } }