configureHTTPServerPipeline(position:withPipeliningAssistance:withServerUpgrade:withErrorHandling:)
Configure a ChannelPipeline
for use as a HTTP server.
@preconcurrency func configureHTTPServerPipeline(position: ChannelPipeline.Position = .last, withPipeliningAssistance pipelining: Bool = true, withServerUpgrade upgrade: NIOHTTPServerUpgradeConfiguration? = nil, withErrorHandling errorHandling: Bool = true) -> EventLoopFuture<Void>
Parameters
- position
Where in the pipeline to add the HTTP server handlers, defaults to
.last
.- pipelining
Whether to provide assistance handling HTTP clients that pipeline their requests. Defaults to
true
. Iffalse
, users will need to handle clients that pipeline themselves.- upgrade
Whether to add a
HTTPServerUpgradeHandler
to the pipeline, configured for HTTP upgrade. Defaults tonil
, which will not add the handler to the pipeline. If provided should be a tuple of an array ofHTTPServerProtocolUpgrader
and the upgrade completion handler. See the documentation onHTTPServerUpgradeHandler
for more details.- errorHandling
Whether to provide assistance handling protocol errors (e.g. failure to parse the HTTP request) by sending 400 errors. Defaults to
true
.
Returns
An EventLoopFuture
that will fire when the pipeline is configured.
This function knows how to set up all first-party HTTP channel handlers appropriately for server use. It supports the following features:
Providing assistance handling clients that pipeline HTTP requests, using the
HTTPServerPipelineHandler
.Supporting HTTP upgrade, using the
HTTPServerUpgradeHandler
.
This method will likely be extended in future with more support for other first-party features.