This commit is contained in:
Redkale
2017-06-19 10:07:59 +08:00
parent 2aee84d477
commit b53510a26f

View File

@@ -109,19 +109,32 @@ class WebSocketRunner implements Runnable {
if (packet.type == FrameType.TEXT) { if (packet.type == FrameType.TEXT) {
Convert textConvert = webSocket.getTextConvert(); Convert textConvert = webSocket.getTextConvert();
Object message = textConvert.convertFrom(webSocket._messageTextType, packet.receiveMasker, packet.receiveBuffers); if (textConvert == null) {
if (readBuffer != null) { byte[] message = packet.getReceiveBytes();
readBuffer.clear(); if (readBuffer != null) {
channel.read(readBuffer, null, this); readBuffer.clear();
} channel.read(readBuffer, null, this);
try { }
if (restMessageConsumer != null) { //主要供RestWebSocket使用 try {
restMessageConsumer.accept(webSocket, message); webSocket.onMessage(new String(message, "UTF-8"), packet.last);
} else { } catch (Exception e) {
webSocket.onMessage(message, packet.last); context.getLogger().log(Level.SEVERE, "WebSocket onBinaryMessage error (" + packet + ")", e);
}
} else {
Object message = textConvert.convertFrom(webSocket._messageTextType, packet.receiveMasker, packet.receiveBuffers);
if (readBuffer != null) {
readBuffer.clear();
channel.read(readBuffer, null, this);
}
try {
if (restMessageConsumer != null) { //主要供RestWebSocket使用
restMessageConsumer.accept(webSocket, message);
} else {
webSocket.onMessage(message, packet.last);
}
} catch (Exception e) {
context.getLogger().log(Level.SEVERE, "WebSocket onTextMessage error (" + packet + ")", e);
} }
} catch (Exception e) {
context.getLogger().log(Level.SEVERE, "WebSocket onTextMessage error (" + packet + ")", e);
} }
} else if (packet.type == FrameType.BINARY) { } else if (packet.type == FrameType.BINARY) {
Convert binaryConvert = webSocket.getBinaryConvert(); Convert binaryConvert = webSocket.getBinaryConvert();