SynchronousOperations

extension ChannelPipeline.SynchronousOperations
  • Configure a ChannelPipeline for use as a HTTP client with a client upgrader configuration.

    Important

    This must be called on the Channel’s event loop.

    Throws

    If the pipeline could not be configured.

    Declaration

    Swift

    public func addHTTPClientHandlers(position: ChannelPipeline.Position = .last,
                                      leftOverBytesStrategy: RemoveAfterUpgradeStrategy = .dropBytes,
                                      withClientUpgrade upgrade: NIOHTTPClientUpgradeConfiguration? = nil) throws

    Parameters

    position

    The position in the ChannelPipeline where to add the HTTP client handlers. Defaults to .last.

    leftOverBytesStrategy

    The strategy to use when dealing with leftover bytes after removing the HTTPDecoder from the pipeline.

    upgrade

    Add a HTTPClientUpgradeHandler to the pipeline, configured for HTTP upgrade. Should be a tuple of an array of HTTPClientProtocolUpgrader and the upgrade completion handler. See the documentation on HTTPClientUpgradeHandler for more details.

  • Configure a ChannelPipeline for use as a HTTP server.

    This function knows how to set up all first-party HTTP channel handlers appropriately for server use. It supports the following features:

    1. Providing assistance handling clients that pipeline HTTP requests, using the HTTPServerPipelineHandler.
    2. Supporting HTTP upgrade, using the HTTPServerUpgradeHandler.

    This method will likely be extended in future with more support for other first-party features.

    Important

    This must be called on the Channel’s event loop.

    Throws

    If the pipeline could not be configured.

    Declaration

    Swift

    public func configureHTTPServerPipeline(position: ChannelPipeline.Position = .last,
                                            withPipeliningAssistance pipelining: Bool = true,
                                            withServerUpgrade upgrade: NIOHTTPServerUpgradeConfiguration? = nil,
                                            withErrorHandling errorHandling: Bool = true) throws

    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. If false, users will need to handle clients that pipeline themselves.

    upgrade

    Whether to add a HTTPServerUpgradeHandler to the pipeline, configured for HTTP upgrade. Defaults to nil, which will not add the handler to the pipeline. If provided should be a tuple of an array of HTTPServerProtocolUpgrader and the upgrade completion handler. See the documentation on HTTPServerUpgradeHandler 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.