public byte[] ToArray() { using (var buff = new MemoryStream()) { var header = (int)Fin; header = (header << 1) + (int)Rsv2; header = (header << 1) + (int)Rsv3; header = (header << 1) + (int)Rsv4; header = (header << 4) + (int)Opcode; header = (header << 1) + (int)Mask; header = (header << 7) + (int)PayloadLength; buff.Write(((ushort)header).InternalToByteArray(ByteOrder.Big), 0, 2); if (PayloadLength > 125) { buff.Write(ExtendedPayloadLength, 0, PayloadLength == 126 ? 2 : 8); } if (Mask == Mask.On) { buff.Write(MaskingKey, 0, 4); } if (PayloadLength > 0) { var bytes = PayloadData.ToArray(); if (PayloadLength < 127) { buff.Write(bytes, 0, bytes.Length); } else { buff.WriteBytes(bytes, 1024); } } buff.Close(); var a = buff.ToArray(); return(a); } }
public string TextToString() { byte[] bytes = PayloadData.ToArray(); return(Encoding.UTF8.GetString(bytes)); }