diff --git a/src/org/redkale/net/Response.java b/src/org/redkale/net/Response.java index 28d7715c4..74ab32dc0 100644 --- a/src/org/redkale/net/Response.java +++ b/src/org/redkale/net/Response.java @@ -30,6 +30,8 @@ public abstract class Response> { protected AsyncConnection channel; + protected ByteBuffer moredata; //pipeline模式 + protected ByteBuffer writeHeadBuffer; protected ByteBuffer writeBodyBuffer; @@ -167,6 +169,12 @@ public abstract class Response> { 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> { this.output = null; this.filter = null; this.servlet = null; + this.moredata = null; request.recycle(); if (channel != null) { channel.dispose(); diff --git a/src/org/redkale/net/http/HttpContext.java b/src/org/redkale/net/http/HttpContext.java index f6d09acd3..550ccfd21 100644 --- a/src/org/redkale/net/http/HttpContext.java +++ b/src/org/redkale/net/http/HttpContext.java @@ -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 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; } } diff --git a/src/org/redkale/net/http/HttpRequest.java b/src/org/redkale/net/http/HttpRequest.java index fe9225e4a..7193bd425 100644 --- a/src/org/redkale/net/http/HttpRequest.java +++ b/src/org/redkale/net/http/HttpRequest.java @@ -166,9 +166,9 @@ public class HttpRequest extends Request { } } 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; } diff --git a/src/org/redkale/net/http/HttpServer.java b/src/org/redkale/net/http/HttpServer.java index 7f50dc3dc..a05503ea7 100644 --- a/src/org/redkale/net/http/HttpServer.java +++ b/src/org/redkale/net/http/HttpServer.java @@ -320,9 +320,7 @@ public class HttpServer extends Server