本文整理汇总了C#中WsFrame.Decompress方法的典型用法代码示例。如果您正苦于以下问题:C# WsFrame.Decompress方法的具体用法?C# WsFrame.Decompress怎么用?C# WsFrame.Decompress使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WsFrame
的用法示例。
在下文中一共展示了WsFrame.Decompress方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: processFragments
private void processFragments(WsFrame first)
{
bool compressed = first.IsCompressed;
if (compressed && _perFrameCompress)
first.Decompress(_compression);
var buffer = new List<byte>(first.PayloadData.ToByteArray());
Func<WsFrame, bool> processContinuation = contFrame =>
{
if (!contFrame.IsContinuation)
return false;
if (contFrame.IsCompressed)
contFrame.Decompress(_compression);
buffer.AddRange(contFrame.PayloadData.ToByteArray());
return true;
};
while (true) {
var frame = readFrame();
if (processAbnormal(frame))
return;
if (!frame.IsFinal) {
// MORE & CONT
if (processContinuation(frame))
continue;
}
else {
// FINAL & CONT
if (processContinuation(frame))
break;
// FINAL & PING
if (processPing(frame))
continue;
// FINAL & PONG
if (processPong(frame))
continue;
// FINAL & CLOSE
if (processClose(frame))
return;
}
// ?
processIncorrectFrame();
return;
}
var data = compressed && !_perFrameCompress
? buffer.ToArray().Decompress(_compression)
: buffer.ToArray();
onMessage(new MessageEventArgs(first.Opcode, new PayloadData(data)));
}
示例2: processData
private bool processData(WsFrame frame)
{
if (!frame.IsData)
return false;
if (frame.IsCompressed && _compression == CompressionMethod.NONE)
return false;
if (frame.IsCompressed)
frame.Decompress(_compression);
onMessage(new MessageEventArgs(frame.Opcode, frame.PayloadData));
return true;
}