diff --git a/src/com/wentch/redkale/net/http/WebSocketRunner.java b/src/com/wentch/redkale/net/http/WebSocketRunner.java index 2e8c02ecc..7f20119d4 100644 --- a/src/com/wentch/redkale/net/http/WebSocketRunner.java +++ b/src/com/wentch/redkale/net/http/WebSocketRunner.java @@ -362,6 +362,29 @@ public class WebSocketRunner implements Runnable { private Logger logger; + /** + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-------+-+-------------+-------------------------------+ + |F|R|R|R| opcode|M| Payload len | Extended payload length | + |I|S|S|S| (4) |A| (7) | (16/64) | + |N|V|V|V| |S| | (if payload len==126/127) | + | |1|2|3| |K| | | + +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + + | Extended payload length continued, if payload len == 127 | + + - - - - - - - - - - - - - - - +-------------------------------+ + | |Masking-key, if MASK set to 1 | + +-------------------------------+-------------------------------+ + | Masking-key (continued) | Payload Data | + +-------------------------------- - - - - - - - - - - - - - - - + + : Payload Data continued : + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | Payload Data continued | + +-----------------------------------------------------------------------+ + @param buffer + @param exbuffers + @return + */ public WebSocketPacket decode(final ByteBuffer buffer, ByteBuffer... exbuffers) { final boolean debug = this.debugable; if (debug) { @@ -376,7 +399,8 @@ public class WebSocketRunner implements Runnable { if (buffer.remaining() < 2) return null; byte opcode = buffer.get(); final boolean last = (opcode & 0b1000000) != 0; - if (false && (opcode & 0b01110000) != 0) { //暂时不校验 + final boolean checkrsv = false;//暂时不校验 + if (checkrsv && (opcode & 0b01110000) != 0) { if (debug) logger.log(Level.FINE, "rsv1 rsv2 rsv3 must be 0, but not (" + opcode + ")"); return null; //rsv1 rsv2 rsv3 must be 0 }