public PerFrameDeflateImpl(PerFrameDeflate parent) { if (parent == null) { throw new ArgumentNullException("parent"); } this.parent = parent; }
public PerFrameDeflateImpl(PerFrameDeflate parent) { if (parent == null) throw new ArgumentNullException("parent"); this.parent = parent; }
public void CompressFrame() { var handler = new TcpHandler(); var ctx = new NetContext(delegate { }, handler); IExtensionFactory factory = new PerFrameDeflate(0, false); var extn = factory.CreateExtension("deflate-frame"); var data = Encoding.UTF8.GetBytes("Hello"); var frame = new WebSocketsFrame { OpCode = WebSocketsFrame.OpCodes.Text, Payload = new MemoryStream(data), PayloadLength = data.Length, Reserved1 = false }; var connection = new WebSocketConnection(new IPEndPoint(IPAddress.Loopback, 20000)); var encoded = extn.ApplyOutgoing(ctx, connection, frame).Single(); var ms = new MemoryStream(); encoded.Payload.CopyTo(ms); string hex = BitConverter.ToString(ms.GetBuffer(), 0, (int)ms.Length); Assert.AreEqual("F2-48-CD-C9-C9-07-00", hex); // unrelated decoder extn = PerFrameDeflate.Default.CreateExtension("deflate-frame"); var decoded = extn.ApplyIncoming(ctx, connection, frame).Single(); ms = new MemoryStream(); decoded.Payload.Position = 0; decoded.Payload.CopyTo(ms); string s = Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Length); Assert.AreEqual("Hello", s); }