123456789101112131415161718192021222324252627282930313233343536 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace SuperWebSocket.Protocol.FramePartReader
- {
- class MaskKeyReader : DataFramePartReader
- {
- public override int Process(int lastLength, WebSocketDataFrame frame, out IDataFramePartReader nextPartReader)
- {
- int required = lastLength + 4;
- if (frame.Length < required)
- {
- nextPartReader = this;
- return -1;
- }
- frame.MaskKey = frame.InnerData.ToArrayData(lastLength, 4);
- if (frame.ActualPayloadLength == 0)
- {
- nextPartReader = null;
- return (int)((long)frame.Length - required);
- }
- nextPartReader = new PayloadDataReader();
- if (frame.Length > required)
- return nextPartReader.Process(required, frame, out nextPartReader);
- return 0;
- }
- }
- }
|