Selaa lähdekoodia

XHTTP: server & client

Remove scMinPostsIntervalMs, xmux, noGRPCHeader from the server side and add them to the client side.

Before you could have them on sub json but I decided to remove them.
mhsanaei 3 kuukautta sitten
vanhempi
commit
0df85cc3d9

+ 0 - 26
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,
         };
     }
 }

+ 26 - 0
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,
+            },
         };
     }
 }

+ 24 - 0
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>
 

+ 2 - 26
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}}