Modified MessageEventArgs.cs

This commit is contained in:
sta 2013-05-02 12:51:56 +09:00
parent e274b73219
commit 371c379a19
10 changed files with 22 additions and 12 deletions

Binary file not shown.

View File

@ -43,19 +43,20 @@ namespace WebSocketSharp {
{ {
#region Private Fields #region Private Fields
private byte[] _data; private string _data;
private Opcode _opcode; private Opcode _opcode;
private byte[] _rawData;
#endregion #endregion
#region Internal Constructors #region Internal Constructors
internal MessageEventArgs(Opcode opcode, byte[] data) internal MessageEventArgs(Opcode opcode, byte[] rawData)
{ {
if ((ulong)data.LongLength > PayloadData.MaxLength) if ((ulong)rawData.LongLength > PayloadData.MaxLength)
throw new WebSocketException(CloseStatusCode.TOO_BIG); throw new WebSocketException(CloseStatusCode.TOO_BIG);
init(opcode, data); init(opcode, rawData);
} }
internal MessageEventArgs(Opcode opcode, PayloadData data) internal MessageEventArgs(Opcode opcode, PayloadData data)
@ -75,11 +76,10 @@ namespace WebSocketSharp {
/// </value> /// </value>
public string Data { public string Data {
get { get {
return _opcode == Opcode.TEXT || _opcode == Opcode.PING || _opcode == Opcode.PONG if (_data.IsNull())
? _data.LongLength > 0 _data = toString(_opcode, _rawData);
? Encoding.UTF8.GetString(_data)
: String.Empty return _data;
: _opcode.ToString();
} }
} }
@ -91,7 +91,7 @@ namespace WebSocketSharp {
/// </value> /// </value>
public byte[] RawData { public byte[] RawData {
get { get {
return _data; return _rawData;
} }
} }
@ -111,10 +111,20 @@ namespace WebSocketSharp {
#region Private Methods #region Private Methods
private void init(Opcode opcode, byte[] data) private void init(Opcode opcode, byte[] rawData)
{ {
_opcode = opcode; _opcode = opcode;
_data = data; _rawData = rawData;
}
private static string toString(Opcode opcode, byte[] rawData)
{
if (rawData.LongLength == 0)
return String.Empty;
return opcode == Opcode.TEXT || opcode == Opcode.PING || opcode == Opcode.PONG
? Encoding.UTF8.GetString(rawData)
: opcode.ToString();
} }
#endregion #endregion