diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs
index 52818f81a..82a5e50b0 100644
--- a/websocket-sharp/WebSocket.cs
+++ b/websocket-sharp/WebSocket.cs
@@ -603,22 +603,54 @@ public TimeSpan WaitTime {
///
/// Occurs when the WebSocket connection has been closed.
///
- public event EventHandler OnClose;
+ event EventHandler onClose;
+ public event EventHandler OnClose {
+ add {
+ onClose = (EventHandler)Delegate.Combine(onClose, value);
+ }
+ remove {
+ onClose = (EventHandler)Delegate.Remove(onClose, value);
+ }
+ }
///
/// Occurs when the gets an error.
///
- public event EventHandler OnError;
+ event EventHandler onError;
+ public event EventHandler OnError {
+ add {
+ onError = (EventHandler)Delegate.Combine(onError, value);
+ }
+ remove {
+ onError = (EventHandler)Delegate.Remove(onError, value);
+ }
+ }
///
/// Occurs when the receives a message.
///
- public event EventHandler OnMessage;
+ event EventHandler onMessage;
+ public event EventHandler OnMessage {
+ add {
+ onMessage = (EventHandler)Delegate.Combine(onMessage, value);
+ }
+ remove {
+ onMessage = (EventHandler)Delegate.Remove(onMessage, value);
+ }
+ }
///
/// Occurs when the WebSocket connection has been established.
///
- public event EventHandler OnOpen;
+ event EventHandler onOpen;
+ public event EventHandler OnOpen {
+ add {
+ onOpen = (EventHandler)Delegate.Combine(onOpen, value);
+ }
+ remove {
+ onOpen = (EventHandler)Delegate.Remove(onOpen, value);
+ }
+ }
#endregion
@@ -767,7 +799,7 @@ private void close (CloseEventArgs e, bool send, bool receive, bool received)
_readyState = WebSocketState.Closed;
try {
- OnClose.Emit (this, e);
+ onClose.Emit (this, e);
}
catch (Exception ex) {
_logger.Fatal (ex.ToString ());
@@ -947,7 +979,7 @@ private void enqueueToMessageEventQueue (MessageEventArgs e)
private void error (string message, Exception exception)
{
try {
- OnError.Emit (this, new ErrorEventArgs (message, exception));
+ onError.Emit (this, new ErrorEventArgs (message, exception));
}
catch (Exception ex) {
_logger.Fatal (ex.ToString ());
@@ -973,7 +1005,7 @@ private void open ()
lock (_forEvent) {
try {
- OnOpen.Emit (this, EventArgs.Empty);
+ onOpen.Emit (this, EventArgs.Empty);
}
catch (Exception ex) {
processException (ex, "An exception has occurred during an OnOpen event.");
@@ -1508,7 +1540,7 @@ private void startReceiving ()
try {
var e = dequeueFromMessageEventQueue ();
if (e != null && _readyState == WebSocketState.Open)
- OnMessage.Emit (this, e);
+ onMessage.Emit (this, e);
}
catch (Exception ex) {
processException (ex, "An exception has occurred during an OnMessage event.");
@@ -1711,7 +1743,7 @@ internal void Close (CloseEventArgs e, byte[] frameAsBytes, bool receive)
_readyState = WebSocketState.Closed;
try {
- OnClose.Emit (this, e);
+ onClose.Emit (this, e);
}
catch (Exception ex) {
_logger.Fatal (ex.ToString ());