/// <summary> /// Deserializes the WebSocket Close Extension Data. /// </summary> /// <param name="data">The data.</param> /// <returns>Deserialized Extension Data.</returns> public CloseFrameExt DeserializeCloseFrameExt(byte[] data) { var extData = new CloseFrameExt(); extData.StatusCode = BinaryHelper.Int16FromBytes(data[0], data[1], 0); extData.LastGoodSessionId = BinaryHelper.Int32FromBytes(new ArraySegment <byte>(data, 2, 4)); return(extData); }
/// <summary> /// Parses HTTP header of SM control frame. /// </summary> /// <param name="frame">The frame.</param> /// <param name="data">The data.</param> private static void ParseControlFrameHeader(ref ControlFrame frame, byte[] data) { frame.Version = BinaryHelper.Int16FromBytes(data[0], data[1], 1); frame.Type = (FrameType)BinaryHelper.Int16FromBytes(data[2], data[3]); frame.StreamId = BinaryHelper.Int32FromBytes(new ArraySegment <byte>(data, 4, 4), 0); frame.Flags = data[8]; // frame.Length = BinaryHelper.Int32FromBytes(new ArraySegment<byte>(data, 5, 3)); frame.IsFinal = (frame.Flags & 0x01) != 0; }