Refactored a few for WebSocketFrame.cs

This commit is contained in:
sta 2015-05-18 15:28:16 +09:00
parent 64fd327e28
commit d359146b5c

View File

@ -38,16 +38,17 @@ namespace WebSocketSharp
{ {
#region Private Fields #region Private Fields
private byte[] _extPayloadLength; private static readonly byte[] _emptyBytes;
private Fin _fin; private byte[] _extPayloadLength;
private Mask _mask; private Fin _fin;
private byte[] _maskingKey; private Mask _mask;
private Opcode _opcode; private byte[] _maskingKey;
private PayloadData _payloadData; private Opcode _opcode;
private byte _payloadLength; private PayloadData _payloadData;
private Rsv _rsv1; private byte _payloadLength;
private Rsv _rsv2; private Rsv _rsv1;
private Rsv _rsv3; private Rsv _rsv2;
private Rsv _rsv3;
#endregion #endregion
@ -62,6 +63,7 @@ namespace WebSocketSharp
static WebSocketFrame () static WebSocketFrame ()
{ {
EmptyUnmaskPingBytes = CreatePingFrame (false).ToByteArray (); EmptyUnmaskPingBytes = CreatePingFrame (false).ToByteArray ();
_emptyBytes = new byte[0];
} }
#endregion #endregion
@ -98,7 +100,7 @@ namespace WebSocketSharp
var len = payloadData.Length; var len = payloadData.Length;
if (len < 126) { if (len < 126) {
_payloadLength = (byte) len; _payloadLength = (byte) len;
_extPayloadLength = new byte[0]; _extPayloadLength = _emptyBytes;
} }
else if (len < 0x010000) { else if (len < 0x010000) {
_payloadLength = (byte) 126; _payloadLength = (byte) 126;
@ -116,7 +118,7 @@ namespace WebSocketSharp
} }
else { else {
_mask = Mask.Unmask; _mask = Mask.Unmask;
_maskingKey = new byte[0]; _maskingKey = _emptyBytes;
} }
_payloadData = payloadData; _payloadData = payloadData;
@ -462,7 +464,7 @@ Extended Payload Length: {7}
/* Extended Payload Length */ /* Extended Payload Length */
var size = payloadLen < 126 ? 0 : (payloadLen == 126 ? 2 : 8); var size = payloadLen < 126 ? 0 : (payloadLen == 126 ? 2 : 8);
var extPayloadLen = size > 0 ? stream.ReadBytes (size) : new byte[0]; var extPayloadLen = size > 0 ? stream.ReadBytes (size) : _emptyBytes;
if (size > 0 && extPayloadLen.Length != size) if (size > 0 && extPayloadLen.Length != size)
throw new WebSocketException ( throw new WebSocketException (
"The 'Extended Payload Length' of a frame cannot be read from the data source."); "The 'Extended Payload Length' of a frame cannot be read from the data source.");
@ -472,7 +474,7 @@ Extended Payload Length: {7}
/* Masking Key */ /* Masking Key */
var masked = mask == Mask.Mask; var masked = mask == Mask.Mask;
var maskingKey = masked ? stream.ReadBytes (4) : new byte[0]; var maskingKey = masked ? stream.ReadBytes (4) : _emptyBytes;
if (masked && maskingKey.Length != 4) if (masked && maskingKey.Length != 4)
throw new WebSocketException ( throw new WebSocketException (
"The 'Masking Key' of a frame cannot be read from the data source."); "The 'Masking Key' of a frame cannot be read from the data source.");
@ -504,7 +506,7 @@ Extended Payload Length: {7}
"The 'Payload Data' of a frame cannot be read from the data source."); "The 'Payload Data' of a frame cannot be read from the data source.");
} }
else { else {
data = new byte[0]; data = _emptyBytes;
} }
frame._payloadData = new PayloadData (data, masked); frame._payloadData = new PayloadData (data, masked);
@ -578,7 +580,7 @@ Extended Payload Length: {7}
_mask = Mask.Unmask; _mask = Mask.Unmask;
_payloadData.Mask (_maskingKey); _payloadData.Mask (_maskingKey);
_maskingKey = new byte[0]; _maskingKey = _emptyBytes;
} }
#endregion #endregion