Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/assets/js/model/inbound.js26
-rw-r--r--web/assets/js/model/outbound.js26
-rw-r--r--web/html/xui/form/outbound.html24
-rw-r--r--web/html/xui/form/stream/stream_xhttp.html28
4 files changed, 52 insertions, 52 deletions
diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js
index a36b9db2..b728c95e 100644
--- a/web/assets/js/model/inbound.js
+++ b/web/assets/js/model/inbound.js
@@ -496,19 +496,9 @@ class xHTTPStreamSettings extends XrayCommonClass {
headers = [],
scMaxBufferedPosts = 30,
scMaxEachPostBytes = "1000000",
- scMinPostsIntervalMs = "30",
noSSEHeader = false,
xPaddingBytes = "100-1000",
- xmux = {
- maxConcurrency: "16-32",
- maxConnections: 0,
- cMaxReuseTimes: "64-128",
- cMaxLifetimeMs: 0,
- hMaxRequestTimes: "800-900",
- hKeepAlivePeriod: 0,
- },
mode = MODE_OPTION.AUTO,
- noGRPCHeader = false
) {
super();
this.path = path;
@@ -516,12 +506,9 @@ class xHTTPStreamSettings extends XrayCommonClass {
this.headers = headers;
this.scMaxBufferedPosts = scMaxBufferedPosts;
this.scMaxEachPostBytes = scMaxEachPostBytes;
- this.scMinPostsIntervalMs = scMinPostsIntervalMs;
this.noSSEHeader = noSSEHeader;
this.xPaddingBytes = xPaddingBytes;
- this.xmux = xmux;
this.mode = mode;
- this.noGRPCHeader = noGRPCHeader;
}
addHeader(name, value) {
@@ -539,12 +526,9 @@ class xHTTPStreamSettings extends XrayCommonClass {
XrayCommonClass.toHeaders(json.headers),
json.scMaxBufferedPosts,
json.scMaxEachPostBytes,
- json.scMinPostsIntervalMs,
json.noSSEHeader,
json.xPaddingBytes,
- json.xmux,
json.mode,
- json.noGRPCHeader,
);
}
@@ -555,19 +539,9 @@ class xHTTPStreamSettings extends XrayCommonClass {
headers: XrayCommonClass.toV2Headers(this.headers, false),
scMaxBufferedPosts: this.scMaxBufferedPosts,
scMaxEachPostBytes: this.scMaxEachPostBytes,
- scMinPostsIntervalMs: this.scMinPostsIntervalMs,
noSSEHeader: this.noSSEHeader,
xPaddingBytes: this.xPaddingBytes,
- xmux: {
- maxConcurrency: this.xmux.maxConcurrency,
- maxConnections: this.xmux.maxConnections,
- cMaxReuseTimes: this.xmux.cMaxReuseTimes,
- cMaxLifetimeMs: this.xmux.cMaxLifetimeMs,
- hMaxRequestTimes: this.xmux.hMaxRequestTimes,
- hKeepAlivePeriod: this.xmux.hKeepAlivePeriod,
- },
mode: this.mode,
- noGRPCHeader: this.noGRPCHeader,
};
}
}
diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js
index 7a53383c..fae1a879 100644
--- a/web/assets/js/model/outbound.js
+++ b/web/assets/js/model/outbound.js
@@ -287,11 +287,24 @@ class xHTTPStreamSettings extends CommonClass {
path = '/',
host = '',
mode = '',
+ noGRPCHeader = false,
+ scMinPostsIntervalMs = "30",
+ xmux = {
+ maxConcurrency: "16-32",
+ maxConnections: 0,
+ cMaxReuseTimes: "64-128",
+ cMaxLifetimeMs: 0,
+ hMaxRequestTimes: "800-900",
+ hKeepAlivePeriod: 0,
+ },
) {
super();
this.path = path;
this.host = host;
this.mode = mode;
+ this.noGRPCHeader = noGRPCHeader;
+ this.scMinPostsIntervalMs = scMinPostsIntervalMs;
+ this.xmux = xmux;
}
static fromJson(json = {}) {
@@ -299,6 +312,9 @@ class xHTTPStreamSettings extends CommonClass {
json.path,
json.host,
json.mode,
+ json.noGRPCHeader,
+ json.scMinPostsIntervalMs,
+ json.xmux
);
}
@@ -307,6 +323,16 @@ class xHTTPStreamSettings extends CommonClass {
path: this.path,
host: this.host,
mode: this.mode,
+ noGRPCHeader: this.noGRPCHeader,
+ scMinPostsIntervalMs: this.scMinPostsIntervalMs,
+ xmux: {
+ maxConcurrency: this.xmux.maxConcurrency,
+ maxConnections: this.xmux.maxConnections,
+ cMaxReuseTimes: this.xmux.cMaxReuseTimes,
+ cMaxLifetimeMs: this.xmux.cMaxLifetimeMs,
+ hMaxRequestTimes: this.xmux.hMaxRequestTimes,
+ hKeepAlivePeriod: this.xmux.hKeepAlivePeriod,
+ },
};
}
}
diff --git a/web/html/xui/form/outbound.html b/web/html/xui/form/outbound.html
index fb9e6f41..0293ffa8 100644
--- a/web/html/xui/form/outbound.html
+++ b/web/html/xui/form/outbound.html
@@ -377,6 +377,30 @@
<a-select-option v-for="key in MODE_OPTION" :value="key">[[ key ]]</a-select-option>
</a-select>
</a-form-item>
+ <a-form-item label="No gRPC Header" v-if="outbound.stream.xhttp.mode === 'stream-up' || outbound.stream.xhttp.mode === 'stream-one'">
+ <a-switch v-model="outbound.stream.xhttp.noGRPCHeader"></a-switch>
+ </a-form-item>
+ <a-form-item label="Min Upload Interval (Ms)" v-if="outbound.stream.xhttp.mode === 'packet-up'">
+ <a-input v-model.trim="outbound.stream.xhttp.scMinPostsIntervalMs"></a-input>
+ </a-form-item>
+ <a-form-item label="Max Concurrency" v-if="!outbound.stream.xhttp.xmux.maxConnections">
+ <a-input v-model="outbound.stream.xhttp.xmux.maxConcurrency"></a-input>
+ </a-form-item>
+ <a-form-item label="Max Connections" v-if="!outbound.stream.xhttp.xmux.maxConcurrency">
+ <a-input v-model="outbound.stream.xhttp.xmux.maxConnections"></a-input>
+ </a-form-item>
+ <a-form-item label="Max Reuse Times">
+ <a-input v-model="outbound.stream.xhttp.xmux.cMaxReuseTimes"></a-input>
+ </a-form-item>
+ <a-form-item label="Max Lifetime (ms)">
+ <a-input v-model="outbound.stream.xhttp.xmux.cMaxLifetimeMs"></a-input>
+ </a-form-item>
+ <a-form-item label="Max Request Times">
+ <a-input v-model="outbound.stream.xhttp.xmux.hMaxRequestTimes"></a-input>
+ </a-form-item>
+ <a-form-item label='Keep Alive Period'>
+ <a-input v-model.number="outbound.stream.xhttp.xmux.hKeepAlivePeriod"></a-input>
+ </a-form-item>
</template>
</template>
diff --git a/web/html/xui/form/stream/stream_xhttp.html b/web/html/xui/form/stream/stream_xhttp.html
index 1dd3c15c..749bfcee 100644
--- a/web/html/xui/form/stream/stream_xhttp.html
+++ b/web/html/xui/form/stream/stream_xhttp.html
@@ -27,41 +27,17 @@
<a-select-option v-for="key in MODE_OPTION" :value="key">[[ key ]]</a-select-option>
</a-select>
</a-form-item>
- <a-form-item label="Max Buffered Upload">
+ <a-form-item label="Max Buffered Upload" v-if="inbound.stream.xhttp.mode === 'packet-up'">
<a-input v-model.trim="inbound.stream.xhttp.scMaxBufferedPosts"></a-input>
</a-form-item>
- <a-form-item label="Max Upload Size (Byte)">
+ <a-form-item label="Max Upload Size (Byte)" v-if="inbound.stream.xhttp.mode === 'packet-up'">
<a-input v-model.trim="inbound.stream.xhttp.scMaxEachPostBytes"></a-input>
</a-form-item>
- <a-form-item label="Min Upload Interval (Ms)">
- <a-input v-model.trim="inbound.stream.xhttp.scMinPostsIntervalMs"></a-input>
- </a-form-item>
<a-form-item label="Padding Bytes">
<a-input v-model.trim="inbound.stream.xhttp.xPaddingBytes"></a-input>
</a-form-item>
<a-form-item label="No SSE Header">
<a-switch v-model="inbound.stream.xhttp.noSSEHeader"></a-switch>
</a-form-item>
- <a-form-item label="Max Concurrency" v-if="!inbound.stream.xhttp.xmux.maxConnections">
- <a-input v-model="inbound.stream.xhttp.xmux.maxConcurrency"></a-input>
- </a-form-item>
- <a-form-item label="Max Connections" v-if="!inbound.stream.xhttp.xmux.maxConcurrency">
- <a-input v-model="inbound.stream.xhttp.xmux.maxConnections"></a-input>
- </a-form-item>
- <a-form-item label="Max Reuse Times">
- <a-input v-model="inbound.stream.xhttp.xmux.cMaxReuseTimes"></a-input>
- </a-form-item>
- <a-form-item label="Max Lifetime (ms)">
- <a-input v-model="inbound.stream.xhttp.xmux.cMaxLifetimeMs"></a-input>
- </a-form-item>
- <a-form-item label="Max Request Times">
- <a-input v-model="inbound.stream.xhttp.xmux.hMaxRequestTimes"></a-input>
- </a-form-item>
- <a-form-item label='Keep Alive Period'>
- <a-input v-model.number="inbound.stream.xhttp.xmux.hKeepAlivePeriod"></a-input>
- </a-form-item>
- <a-form-item label="No gRPC Header">
- <a-switch v-model="inbound.stream.xhttp.noGRPCHeader"></a-switch>
- </a-form-item>
</a-form>
{{end}} \ No newline at end of file