use of org.apache.hc.core5.http.impl.nio.HttpConnectionEventHandler in project httpcomponents-core by apache.
the class ServerH2UpgradeHandler method upgrade.
@Override
public void upgrade(final ProtocolIOSession ioSession, final FutureCallback<ProtocolIOSession> callback) {
final HttpConnectionEventHandler protocolNegotiator = new ServerH2PrefaceHandler(ioSession, http2StreamHandlerFactory, callback);
ioSession.upgrade(protocolNegotiator);
try {
protocolNegotiator.connected(ioSession);
} catch (final IOException ex) {
protocolNegotiator.exception(ioSession, ex);
}
}
use of org.apache.hc.core5.http.impl.nio.HttpConnectionEventHandler in project httpcomponents-core by apache.
the class ClientHttpProtocolNegotiationStarter method createHandler.
@Override
public HttpConnectionEventHandler createHandler(final ProtocolIOSession ioSession, final Object attachment) {
HttpVersionPolicy endpointPolicy = versionPolicy;
if (attachment instanceof EndpointParameters) {
final EndpointParameters params = (EndpointParameters) attachment;
if (tlsStrategy != null && URIScheme.HTTPS.same(params.getScheme())) {
tlsStrategy.upgrade(ioSession, params, params.getAttachment(), handshakeTimeout, null);
}
if (params.getAttachment() instanceof HttpVersionPolicy) {
endpointPolicy = (HttpVersionPolicy) params.getAttachment();
}
}
ioSession.registerProtocol(ApplicationProtocol.HTTP_1_1.id, new ClientHttp1UpgradeHandler(http1StreamHandlerFactory));
ioSession.registerProtocol(ApplicationProtocol.HTTP_2.id, new ClientH2UpgradeHandler(http2StreamHandlerFactory));
switch(endpointPolicy) {
case FORCE_HTTP_2:
return new ClientH2PrefaceHandler(ioSession, http2StreamHandlerFactory, false);
case FORCE_HTTP_1:
return new ClientHttp1IOEventHandler(http1StreamHandlerFactory.create(ioSession));
default:
return new HttpProtocolNegotiator(ioSession, null);
}
}
use of org.apache.hc.core5.http.impl.nio.HttpConnectionEventHandler in project httpcomponents-core by apache.
the class ServerHttpProtocolNegotiationStarter method createHandler.
@Override
public HttpConnectionEventHandler createHandler(final ProtocolIOSession ioSession, final Object attachment) {
HttpVersionPolicy endpointPolicy = versionPolicy;
URIScheme uriScheme = URIScheme.HTTP;
if (attachment instanceof EndpointParameters) {
final EndpointParameters params = (EndpointParameters) attachment;
if (tlsStrategy != null && URIScheme.HTTPS.same(params.getScheme())) {
uriScheme = URIScheme.HTTPS;
tlsStrategy.upgrade(ioSession, params, params.getAttachment(), handshakeTimeout, null);
}
if (params.getAttachment() instanceof HttpVersionPolicy) {
endpointPolicy = (HttpVersionPolicy) params.getAttachment();
}
}
ioSession.registerProtocol(ApplicationProtocol.HTTP_1_1.id, new ServerHttp1UpgradeHandler(http1StreamHandlerFactory));
ioSession.registerProtocol(ApplicationProtocol.HTTP_2.id, new ServerH2UpgradeHandler(http2StreamHandlerFactory));
switch(endpointPolicy) {
case FORCE_HTTP_2:
return new ServerH2PrefaceHandler(ioSession, http2StreamHandlerFactory);
case FORCE_HTTP_1:
return new ServerHttp1IOEventHandler(http1StreamHandlerFactory.create(uriScheme.id, ioSession));
default:
return new HttpProtocolNegotiator(ioSession, null);
}
}
use of org.apache.hc.core5.http.impl.nio.HttpConnectionEventHandler in project httpcomponents-core by apache.
the class ClientH2UpgradeHandler method upgrade.
@Override
public void upgrade(final ProtocolIOSession ioSession, final FutureCallback<ProtocolIOSession> callback) {
final HttpConnectionEventHandler protocolNegotiator = new ClientH2PrefaceHandler(ioSession, http2StreamHandlerFactory, true, callback);
ioSession.upgrade(protocolNegotiator);
try {
protocolNegotiator.connected(ioSession);
} catch (final IOException ex) {
protocolNegotiator.exception(ioSession, ex);
}
}
Aggregations