Fixed several part

This commit is contained in:
sta
2012-08-01 11:38:40 +09:00
parent a93dcc09aa
commit cf6b26503e
10 changed files with 36 additions and 37 deletions

View File

@@ -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<TEventArgs>(
this EventHandler<TEventArgs> eventHandler, object sender, TEventArgs e)
where TEventArgs : EventArgs
{
if (eventHandler != null)
{
eventHandler(sender, e);
}
}
public static bool EqualsAndSaveTo(this int value, char c, List<byte> dest)
{
byte b = (byte)value;

View File

@@ -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);

View File

@@ -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)

Binary file not shown.