diff --git a/Example1/AudioStreamer.cs b/Example1/AudioStreamer.cs index 44dd7f19..bbfbf691 100644 --- a/Example1/AudioStreamer.cs +++ b/Example1/AudioStreamer.cs @@ -108,7 +108,7 @@ namespace Example _ws.OnError += (sender, e) => { - enNfMessage("[AudioStreamer] error", "WS Error: " + e.Data, "notification-message-im"); + enNfMessage("[AudioStreamer] error", "WS: Error: " + e.Data, "notification-message-im"); }; _ws.OnClose += (sender, e) => @@ -116,7 +116,7 @@ namespace Example enNfMessage ( "[AudioStreamer] disconnect", - String.Format("WS Close({0}:{1}): {2}", (ushort)e.Code, e.Code, e.Reason), + String.Format("WS: Close({0}:{1}): {2}", (ushort)e.Code, e.Code, e.Reason), "notification-message-im" ); }; diff --git a/websocket-sharp.userprefs b/websocket-sharp.userprefs index e78c9e62..b782827f 100644 --- a/websocket-sharp.userprefs +++ b/websocket-sharp.userprefs @@ -2,7 +2,7 @@ - + diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index 00fa0677..f3a7c9f8 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -36,6 +36,25 @@ namespace WebSocketSharp { public static class Ext { + public static void Emit( + this EventHandler eventHandler, object sender, EventArgs e) + { + if (eventHandler != null) + { + eventHandler(sender, e); + } + } + + public static void Emit( + this EventHandler eventHandler, object sender, TEventArgs e) + where TEventArgs : EventArgs + { + if (eventHandler != null) + { + eventHandler(sender, e); + } + } + public static bool EqualsAndSaveTo(this int value, char c, List dest) { byte b = (byte)value; diff --git a/websocket-sharp/Frame/PayloadData.cs b/websocket-sharp/Frame/PayloadData.cs index ddbba73a..cde2eb48 100644 --- a/websocket-sharp/Frame/PayloadData.cs +++ b/websocket-sharp/Frame/PayloadData.cs @@ -47,7 +47,8 @@ namespace WebSocketSharp.Frame public byte[] ExtensionData { get; private set; } public byte[] ApplicationData { get; private set; } - public bool IsMasked { get; private set; } + + public bool IsMasked { get; private set; } public ulong Length { @@ -154,6 +155,7 @@ namespace WebSocketSharp.Frame { mask(ExtensionData, maskingKey); } + if (ApplicationData.LongLength > 0) { mask(ApplicationData, maskingKey); diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index 5af088e5..8f47db3f 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -126,10 +126,7 @@ namespace WebSocketSharp { case WsState.OPEN: messageThreadStart(); - if (OnOpen != null) - { - OnOpen(this, EventArgs.Empty); - } + OnOpen.Emit(this, EventArgs.Empty); break; case WsState.CLOSING: break; @@ -229,14 +226,14 @@ namespace WebSocketSharp else if (_readyState == WsState.CONNECTING) { ReadyState = WsState.CLOSED; - emitOnClose(data); + OnClose.Emit(this, new CloseEventArgs(data)); return; } ReadyState = WsState.CLOSING; } - emitOnClose(data); + OnClose.Emit(this, new CloseEventArgs(data)); var frame = new WsFrame(Opcode.CLOSE, data); closeHandshake(frame); #if DEBUG @@ -428,27 +425,14 @@ namespace WebSocketSharp ReadyState = WsState.OPEN; } - private void emitOnClose(PayloadData data) - { - if (OnClose != null) - { - OnClose(this, new CloseEventArgs(data)); - } - } - private void error(string message) { + #if DEBUG var callerFrame = new StackFrame(1); var caller = callerFrame.GetMethod(); - - if (OnError != null) - { - OnError(this, new MessageEventArgs(message)); - } - else - { - Console.WriteLine("WS: Error@{0}: {1}", caller.Name, message); - } + Console.WriteLine("WS: Error@{0}: {1}", caller.Name, message); + #endif + OnError.Emit(this, new MessageEventArgs(message)); } private bool isValidResponse(string[] response, out string message) @@ -548,9 +532,9 @@ namespace WebSocketSharp { eventArgs = receive(); - if (OnMessage != null && eventArgs != null) + if (eventArgs != null) { - OnMessage(this, eventArgs); + OnMessage.Emit(this, eventArgs); } } catch (WsReceivedTooBigMessageException ex) @@ -630,17 +614,11 @@ namespace WebSocketSharp else if (frame.Opcode == Opcode.PING) {// FINAL & PING pong(frame.PayloadData); - if (OnMessage != null) - { - OnMessage(this, new MessageEventArgs(frame.Opcode, frame.PayloadData)); - } + OnMessage.Emit(this, new MessageEventArgs(frame.Opcode, frame.PayloadData)); } else if (frame.Opcode == Opcode.PONG) {// FINAL & PONG - if (OnMessage != null) - { - OnMessage(this, new MessageEventArgs(frame.Opcode, frame.PayloadData)); - } + OnMessage.Emit(this, new MessageEventArgs(frame.Opcode, frame.PayloadData)); } else {// FINAL & (TEXT | BINARY) diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll index 61b45ff1..4b8d81cb 100755 Binary files a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll and b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll differ diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb index 76685d78..f26ae797 100644 Binary files a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb and b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb differ diff --git a/websocket-sharp/bin/Release/websocket-sharp.dll b/websocket-sharp/bin/Release/websocket-sharp.dll index 79e587c5..0096e74e 100755 Binary files a/websocket-sharp/bin/Release/websocket-sharp.dll and b/websocket-sharp/bin/Release/websocket-sharp.dll differ diff --git a/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll index 05099c68..eed7a63f 100755 Binary files a/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll and b/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll differ diff --git a/websocket-sharp/websocket-sharp.pidb b/websocket-sharp/websocket-sharp.pidb index 2f4fa8ed..566f78e9 100644 Binary files a/websocket-sharp/websocket-sharp.pidb and b/websocket-sharp/websocket-sharp.pidb differ