private static WebSocketDeflateCompressionOptions GetDeflateNegotiationOffer(HttpContext context) { WebSocketDeflateCompressionOptions compressionOptions = null; foreach (string headerValue in context.Request.Headers.GetCommaSeparatedValues(HeaderNames.SecWebSocketExtensions)) { NameValueWithParametersHeaderValue parsedHeaderValue; if (NameValueWithParametersHeaderValue.TryParse(headerValue, out parsedHeaderValue) && parsedHeaderValue.Name == WEBSOCKET_PERMESSAGE_DEFLATE_EXTENSION) { compressionOptions = WebSocketDeflateCompressionOptions.FromHeaderValue(parsedHeaderValue); break; } } return(compressionOptions); }
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); }