private static void SetDeflateNegotiationResponse(HttpContext context, WebSocketDeflateCompressionProvider deflateCompressionProvider) { NameValueWithParametersHeaderValue secWebSocketExtensionsHeaderValue = new NameValueWithParametersHeaderValue(WEBSOCKET_PERMESSAGE_DEFLATE_EXTENSION); if (deflateCompressionProvider.ClientNoContextTakeover) { secWebSocketExtensionsHeaderValue.Parameters.Add(new NameValueHeaderValue(WebSocketDeflateCompressionOptions.CLIENT_NO_CONTEXT_TAKEOVER_OPTION)); } if (deflateCompressionProvider.ServerNoContextTakeover) { secWebSocketExtensionsHeaderValue.Parameters.Add(new NameValueHeaderValue(WebSocketDeflateCompressionOptions.SERVER_NO_CONTEXT_TAKEOVER_OPTION)); } context.Response.Headers[HeaderNames.SecWebSocketExtensions] = secWebSocketExtensionsHeaderValue.ToString(); }
private static WebSocketDeflateCompressionProvider NegotiateDeflateCompression(HttpContext context, int?sendSegmentSize) { WebSocketDeflateCompressionProvider deflateCompressionProvider = null; WebSocketDeflateCompressionOptions deflateCompressionOptions = GetDeflateNegotiationOffer(context); if (deflateCompressionOptions != null) { deflateCompressionProvider = WebSocketDeflateCompressionProvider.Create(deflateCompressionOptions, sendSegmentSize); if (deflateCompressionProvider != null) { SetDeflateNegotiationResponse(context, deflateCompressionProvider); } } return(deflateCompressionProvider); }