This commit is contained in:
Redkale
2018-08-04 14:52:44 +08:00
parent 8d5ce56ec2
commit 5b501c7c2f
4 changed files with 12 additions and 16 deletions

View File

@@ -30,6 +30,8 @@ public abstract class Response<C extends Context, R extends Request<C>> {
protected AsyncConnection channel;
protected ByteBuffer moredata; //pipeline模式
protected ByteBuffer writeHeadBuffer;
protected ByteBuffer writeBodyBuffer;
@@ -167,6 +169,12 @@ public abstract class Response<C extends Context, R extends Request<C>> {
return ch;
}
protected ByteBuffer removeMoredata() {
ByteBuffer rs = this.moredata;
this.moredata = null;
return rs;
}
protected void prepare() {
inited = true;
}
@@ -176,6 +184,7 @@ public abstract class Response<C extends Context, R extends Request<C>> {
this.output = null;
this.filter = null;
this.servlet = null;
this.moredata = null;
request.recycle();
if (channel != null) {
channel.dispose();

View File

@@ -26,23 +26,15 @@ import org.redkale.util.*;
*/
public class HttpContext extends Context {
//是否开启pipeline
protected final boolean pipeline;
protected final SecureRandom random = new SecureRandom();
protected final ConcurrentHashMap<Class, Creator> asyncHandlerCreators = new ConcurrentHashMap<>();
public HttpContext(HttpContextConfig config) {
super(config);
this.pipeline = config.pipeline;
random.setSeed(Math.abs(System.nanoTime()));
}
public final boolean isPipeline() {
return pipeline;
}
protected String createSessionid() {
byte[] bytes = new byte[16];
random.nextBytes(bytes);
@@ -187,7 +179,5 @@ public class HttpContext extends Context {
public static class HttpContextConfig extends ContextConfig {
//是否开启pipeline
public boolean pipeline;
}
}

View File

@@ -166,9 +166,9 @@ public class HttpRequest extends Request<HttpContext> {
}
}
array.clear();
if (!context.isPipeline()) {
if (buffer.hasRemaining()) array.write(buffer, buffer.remaining());
}
if (buffer.hasRemaining()) array.write(buffer, buffer.remaining());
if (this.contentType != null && this.contentType.contains("boundary=")) {
this.boundary = true;
}

View File

@@ -320,9 +320,7 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
String jsonContentType = null;
HttpCookie defaultCookie = null;
String remoteAddrHeader = null;
boolean pipeline = false;
if (config != null) {
pipeline = config.getBoolValue("pipeline", false);
AnyValue reqs = config == null ? null : config.getAnyValue("request");
if (reqs != null) {
AnyValue raddr = reqs.getAnyValue("remoteaddr");
@@ -442,7 +440,6 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
contextConfig.logger = this.logger;
contextConfig.executor = this.executor;
contextConfig.sslContext = this.sslContext;
contextConfig.pipeline = pipeline;
contextConfig.bufferCapacity = rcapacity;
contextConfig.bufferPool = bufferPool;
contextConfig.responsePool = responsePool;