Package

xitrum

handler

Permalink

package handler

Visibility
  1. Public
  2. All

Type Members

  1. class DefaultHttpChannelInitializer extends ChannelInitializer[SocketChannel]

    Permalink
    Annotations
    @Sharable()
  2. class HandlerEnv extends HashMap[Any, Any]

    Permalink

    Env is basically a map for sharing data between handlers.

    Env is basically a map for sharing data between handlers. But for more typesafe, fixed data variables are put inside.

  3. class SslChannelInitializer extends ChannelInitializer[SocketChannel]

    Permalink

    This is a wrapper.

    This is a wrapper. It prepends SSL handler to the non-SSL pipeline.

    Annotations
    @Sharable()

Value Members

  1. object AccessLog

    Permalink
  2. object Bootstrap

    Permalink
  3. object DefaultHttpChannelInitializer

    Permalink

    Sharable handlers are put here so that they can be easily picked up by apps that want to use custom pipeline.

    Sharable handlers are put here so that they can be easily picked up by apps that want to use custom pipeline. Those apps may only want a subset of default handlers.

    When an app uses its own dispatcher (not Xitrum's routing/dispatcher) and only needs Xitrum's fast static file serving, it may use only these handlers:

    Inbound: HttpRequestDecoder Request2Env PublicFileServer Its own dispatcher

    Outbound: HttpResponseEncoder ChunkedWriteHandler XSendFile

  4. object NetOption

    Permalink
  5. object NoRealPipelining

    Permalink

    http://en.wikipedia.org/wiki/HTTP_pipelining

    http://en.wikipedia.org/wiki/HTTP_pipelining

    Xitrum does not support real pipelining. A client may send multiple requests, but Xitrum will not process them at concurrently. Xitrum will process one by one.

    From Mongrel2 doc: http://mongrel2.org/manual/book-finalch6.html

    "Where problems come in is with pipe-lined requests, meaning a browser sends a bunch of requests in a big blast, then hangs out for all the responses. This was such a horrible stupid idea that pretty much everone gets it wrong and doesn't support it fully, if at all. The reason is it's much too easy to blast a server with a ton of request, wait a bit so they hit proxied backends, and then close the socket. The web server and the backends are now screwed having to handle these requests which will go nowhere."

  6. object SslChannelInitializer

    Permalink
  7. package inbound

    Permalink
  8. package outbound

    Permalink

Ungrouped