New - splithttp (xmux)

This commit is contained in:
mhsanaei 2024-09-16 16:47:59 +02:00
parent fbcab5bc52
commit e78427245a
2 changed files with 26 additions and 0 deletions

View file

@ -529,6 +529,12 @@ class SplitHTTPStreamSettings extends XrayCommonClass {
scMinPostsIntervalMs = "10-50", scMinPostsIntervalMs = "10-50",
noSSEHeader = false, noSSEHeader = false,
xPaddingBytes = "100-1000", xPaddingBytes = "100-1000",
xmux = {
maxConnections: 0,
maxConcurrency: 0,
cMaxReuseTimes: 0,
cMaxLifetimeMs: 0
}
) { ) {
super(); super();
this.path = path; this.path = path;
@ -539,6 +545,7 @@ class SplitHTTPStreamSettings extends XrayCommonClass {
this.scMinPostsIntervalMs = scMinPostsIntervalMs; this.scMinPostsIntervalMs = scMinPostsIntervalMs;
this.noSSEHeader = noSSEHeader; this.noSSEHeader = noSSEHeader;
this.xPaddingBytes = xPaddingBytes; this.xPaddingBytes = xPaddingBytes;
this.xmux = xmux;
} }
addHeader(name, value) { addHeader(name, value) {
@ -559,6 +566,7 @@ class SplitHTTPStreamSettings extends XrayCommonClass {
json.scMinPostsIntervalMs, json.scMinPostsIntervalMs,
json.noSSEHeader, json.noSSEHeader,
json.xPaddingBytes, json.xPaddingBytes,
json.xmux,
); );
} }
@ -572,6 +580,12 @@ class SplitHTTPStreamSettings extends XrayCommonClass {
scMinPostsIntervalMs: this.scMinPostsIntervalMs, scMinPostsIntervalMs: this.scMinPostsIntervalMs,
noSSEHeader: this.noSSEHeader, noSSEHeader: this.noSSEHeader,
xPaddingBytes: this.xPaddingBytes, xPaddingBytes: this.xPaddingBytes,
xmux: {
maxConnections: this.xmux.maxConnections,
maxConcurrency: this.xmux.maxConcurrency,
cMaxReuseTimes: this.xmux.cMaxReuseTimes,
cMaxLifetimeMs: this.xmux.cMaxLifetimeMs
}
}; };
} }
} }

View file

@ -34,5 +34,17 @@
<a-form-item label="No SSE Header"> <a-form-item label="No SSE Header">
<a-switch v-model="inbound.stream.splithttp.noSSEHeader"></a-switch> <a-switch v-model="inbound.stream.splithttp.noSSEHeader"></a-switch>
</a-form-item> </a-form-item>
<a-form-item label="Max Connections">
<a-input-number v-model.trim="inbound.stream.splithttp.xmux.maxConnections"></a-input-number>
</a-form-item>
<a-form-item label="Max Concurrency">
<a-input-number v-model.trim="inbound.stream.splithttp.xmux.maxConcurrency"></a-input-number>
</a-form-item>
<a-form-item label="Max Reuse Times">
<a-input-number v-model.trim="inbound.stream.splithttp.xmux.cMaxReuseTimes"></a-input-number>
</a-form-item>
<a-form-item label="Max Lifetime (ms)">
<a-input-number v-model.trim="inbound.stream.splithttp.xmux.cMaxLifetimeMs"></a-input-number>
</a-form-item>
</a-form> </a-form>
{{end}} {{end}}