@Immutable public class HttpAsyncService extends java.lang.Object implements NHttpServerEventHandler
NHttpServerEventHandler interface into logically related
HTTP message exchanges.
Upon receiving an incoming request HttpAsyncService verifies
the message for compliance with the server expectations using
HttpAsyncExpectationVerifier, if provided, and then
HttpAsyncRequestHandlerMapper is used to map the request
to a particular HttpAsyncRequestHandler intended to handle
the request with the given URI. The protocol handler uses the selected
HttpAsyncRequestHandler instance to process the incoming request
and to generate an outgoing response.
HttpAsyncService relies on HttpProcessor to generate
mandatory protocol headers for all outgoing messages and apply common,
cross-cutting message transformations to all incoming and outgoing messages,
whereas individual HttpAsyncRequestHandlers are expected
to implement application specific content generation and processing.
Individual HttpAsyncRequestHandlers do not have to submit a response
immediately. They can defer transmission of an HTTP response back to
the client without blocking the I/O thread by delegating the process of
request handling to another service or a worker thread. HTTP response can
be submitted as a later a later point of time once response content becomes
available.| 构造器和说明 |
|---|
HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpAsyncRequestHandlerResolver handlerResolver,
HttpParams params)
|
HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpResponseFactory responseFactory,
HttpAsyncRequestHandlerMapper handlerMapper,
HttpAsyncExpectationVerifier expectationVerifier)
Creates new instance of HttpAsyncServerProtocolHandler.
|
HttpAsyncService(HttpProcessor httpProcessor,
ConnectionReuseStrategy connStrategy,
HttpResponseFactory responseFactory,
HttpAsyncRequestHandlerResolver handlerResolver,
HttpAsyncExpectationVerifier expectationVerifier,
HttpParams params)
|
HttpAsyncService(HttpProcessor httpProcessor,
HttpAsyncRequestHandlerMapper handlerMapper)
Creates new instance of HttpAsyncServerProtocolHandler.
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
closed(NHttpServerConnection conn)
Triggered when the connection is closed.
|
void |
connected(NHttpServerConnection conn)
Triggered when a new incoming connection is created.
|
void |
endOfInput(NHttpServerConnection conn)
Triggered when the connection is closed by the opposite end point
(half-closed).
|
void |
exception(NHttpServerConnection conn,
java.lang.Exception cause)
Triggered if an error occurs during the HTTP exchange.
|
protected HttpAsyncResponseProducer |
handleException(java.lang.Exception ex,
HttpContext context) |
void |
inputReady(NHttpServerConnection conn,
ContentDecoder decoder)
Triggered when the underlying channel is ready for reading a
new portion of the request entity through the corresponding
content decoder.
|
protected void |
log(java.lang.Exception ex)
This method can be used to log I/O exception thrown while closing
Closeable objects (such as
HttpConnection). |
void |
outputReady(NHttpServerConnection conn,
ContentEncoder encoder)
Triggered when the underlying channel is ready for writing a
next portion of the response entity through the corresponding
content encoder.
|
void |
requestReceived(NHttpServerConnection conn)
Triggered when a new HTTP request is received.
|
void |
responseReady(NHttpServerConnection conn)
Triggered when the connection is ready to accept a new HTTP response.
|
void |
timeout(NHttpServerConnection conn)
Triggered when no input is detected on this connection over the
maximum period of inactivity.
|
@Deprecated public HttpAsyncService(HttpProcessor httpProcessor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpAsyncRequestHandlerResolver handlerResolver, HttpAsyncExpectationVerifier expectationVerifier, HttpParams params)
httpProcessor - HTTP protocol processor (required).connStrategy - Connection re-use strategy (required).responseFactory - HTTP response factory (required).handlerResolver - Request handler resolver.expectationVerifier - Request expectation verifier (optional).params - HTTP parameters (required).@Deprecated public HttpAsyncService(HttpProcessor httpProcessor, ConnectionReuseStrategy connStrategy, HttpAsyncRequestHandlerResolver handlerResolver, HttpParams params)
httpProcessor - HTTP protocol processor (required).connStrategy - Connection re-use strategy (required).handlerResolver - Request handler resolver.params - HTTP parameters (required).public HttpAsyncService(HttpProcessor httpProcessor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpAsyncRequestHandlerMapper handlerMapper, HttpAsyncExpectationVerifier expectationVerifier)
httpProcessor - HTTP protocol processor.connStrategy - Connection re-use strategy. If null
DefaultConnectionReuseStrategy.INSTANCE will be used.responseFactory - HTTP response factory. If null
DefaultHttpResponseFactory.INSTANCE will be used.handlerMapper - Request handler mapper.expectationVerifier - Request expectation verifier. May be null.public HttpAsyncService(HttpProcessor httpProcessor, HttpAsyncRequestHandlerMapper handlerMapper)
httpProcessor - HTTP protocol processor.handlerMapper - Request handler mapper.public void connected(NHttpServerConnection conn)
NHttpServerEventHandlerconnected 在接口中 NHttpServerEventHandlerconn - new incoming connection HTTP connection.public void closed(NHttpServerConnection conn)
NHttpServerEventHandlerclosed 在接口中 NHttpServerEventHandlerconn - closed HTTP connection.public void exception(NHttpServerConnection conn, java.lang.Exception cause)
NHttpServerEventHandlerexception 在接口中 NHttpServerEventHandlerconn - HTTP connection that caused an I/O errorcause - exceptionpublic void requestReceived(NHttpServerConnection conn) throws java.io.IOException, HttpException
NHttpServerEventHandlerNHttpServerEventHandler.inputReady(NHttpServerConnection, ContentDecoder) calls
to transfer the request content.requestReceived 在接口中 NHttpServerEventHandlerconn - HTTP connection that contains a new HTTP requestjava.io.IOExceptionHttpExceptionNHttpServerConnectionpublic void inputReady(NHttpServerConnection conn, ContentDecoder decoder) throws java.io.IOException, HttpException
NHttpServerEventHandlerIOControl interface (super interface of NHttpServerConnection).
Please note that the NHttpServerConnection and ContentDecoder
objects are not thread-safe and should only be used within the context of
this method call. The IOControl object can be shared and used on extension
thread to resume input event notifications when the handler is capable of
processing more content.inputReady 在接口中 NHttpServerEventHandlerconn - HTTP connection that can produce a new portion of the
incoming request content.decoder - The content decoder to use to read content.java.io.IOExceptionHttpExceptionNHttpServerConnection,
ContentDecoder,
IOControlpublic void responseReady(NHttpServerConnection conn) throws java.io.IOException, HttpException
NHttpServerEventHandlerresponseReady 在接口中 NHttpServerEventHandlerconn - HTTP connection that contains an HTTP responsejava.io.IOExceptionHttpExceptionNHttpServerConnectionpublic void outputReady(NHttpServerConnection conn, ContentEncoder encoder) throws java.io.IOException
NHttpServerEventHandlerIOControl interface (super interface of NHttpServerConnection).
Please note that the NHttpServerConnection and ContentEncoder
objects are not thread-safe and should only be used within the context of
this method call. The IOControl object can be shared and used on extension
thread to resume output event notifications when more content is made available.outputReady 在接口中 NHttpServerEventHandlerconn - HTTP connection that can accommodate a new portion
of the outgoing response content.encoder - The content encoder to use to write content.java.io.IOExceptionNHttpServerConnection,
ContentEncoder,
IOControlpublic void endOfInput(NHttpServerConnection conn) throws java.io.IOException
NHttpServerEventHandlerendOfInput 在接口中 NHttpServerEventHandlerconn - half-closed HTTP connection.java.io.IOExceptionpublic void timeout(NHttpServerConnection conn) throws java.io.IOException
NHttpServerEventHandlertimeout 在接口中 NHttpServerEventHandlerconn - HTTP connection that caused timeout condition.java.io.IOExceptionprotected void log(java.lang.Exception ex)
Closeable objects (such as
HttpConnection).ex - I/O exception thrown by Closeable.close()protected HttpAsyncResponseProducer handleException(java.lang.Exception ex, HttpContext context)