Modified WebSocket.cs, Ext.cs

This commit is contained in:
sta
2013-05-14 02:00:18 +09:00
parent ee3746cc03
commit 4fa05f928b
42 changed files with 93 additions and 55 deletions

View File

@@ -1196,13 +1196,26 @@ namespace WebSocketSharp {
var compressed = false;
try
{
if (_readyState != WsState.OPEN)
{
onError("The WebSocket connection isn't established or has been closed.");
return;
}
if (_compression != CompressionMethod.NONE)
{
data = data.Compress(_compression);
compressed = true;
}
send(opcode, data, compressed);
var length = data.Length;
lock (_forSend)
{
if (length <= _fragmentLen)
send(Fin.FINAL, opcode, data.ReadBytes((int)length), compressed);
else
sendFragmented(opcode, data, compressed);
}
}
catch (Exception ex)
{
@@ -1217,24 +1230,6 @@ namespace WebSocketSharp {
}
}
private void send(Opcode opcode, Stream stream, bool compressed)
{
lock (_forSend)
{
if (_readyState != WsState.OPEN)
{
onError("The WebSocket connection isn't established or has been closed.");
return;
}
var length = stream.Length;
if (length <= _fragmentLen)
send(Fin.FINAL, opcode, stream.ReadBytes((int)length), compressed);
else
sendFragmented(opcode, stream, compressed);
}
}
private bool send(Fin fin, Opcode opcode, byte[] data, bool compressed)
{
var frame = createFrame(fin, opcode, new PayloadData(data), compressed, _client);