public int parse(List <byte> input, ServerConfiguration configuration) { if (header == null) { header = new WebSocketHeader(); } header.parse(input, configuration); header.getBytes(input, ref data, ref header.position, (int)header.length); if (header.mask) { for (int i = 0; i < data.Length; ++i) { data[i] = (byte)(data[i] ^ header.maskKeys[i % 4]); } } if (header.opCode == OpCode.Close && data.Length == 2) { closeCode = BitConverter.ToUInt16(((byte[])data.ToArray <byte>().Clone()).Reverse().ToArray(), 0); } return(header.position); }
public WebSocketFrame() { header = new WebSocketHeader(); header.fin = WebSocketHeader.FINISH_MASK; header.rsv1 = 0; header.rsv2 = 0; header.rsv3 = 0; }
public WebSocketFrame(byte[] data) { header = new WebSocketHeader(); header.fin = WebSocketHeader.FINISH_MASK; header.rsv1 = 0; header.rsv2 = 0; header.rsv3 = 0; header.opCode = OpCode.Text; header.length = (ulong)data.Length; this.data = data; }