Ver código fonte

WebSocket: Add heartbeatPeriod

mhsanaei 3 meses atrás
pai
commit
3e8fc59213

+ 5 - 1
web/assets/js/model/inbound.js

@@ -379,13 +379,15 @@ class WsStreamSettings extends XrayCommonClass {
         acceptProxyProtocol = false,
         path = '/',
         host = '',
-        headers = []
+        headers = [],
+        heartbeatPeriod = 0,
     ) {
         super();
         this.acceptProxyProtocol = acceptProxyProtocol;
         this.path = path;
         this.host = host;
         this.headers = headers;
+        this.heartbeatPeriod = heartbeatPeriod;
     }
 
     addHeader(name, value) {
@@ -402,6 +404,7 @@ class WsStreamSettings extends XrayCommonClass {
             json.path,
             json.host,
             XrayCommonClass.toHeaders(json.headers),
+            json.heartbeatPeriod,
         );
     }
 
@@ -411,6 +414,7 @@ class WsStreamSettings extends XrayCommonClass {
             path: this.path,
             host: this.host,
             headers: XrayCommonClass.toV2Headers(this.headers, false),
+            heartbeatPeriod: this.heartbeatPeriod,
         };
     }
 }

+ 9 - 1
web/assets/js/model/outbound.js

@@ -206,16 +206,23 @@ class KcpStreamSettings extends CommonClass {
 }
 
 class WsStreamSettings extends CommonClass {
-    constructor(path = '/', host = '') {
+    constructor(
+        path = '/', 
+        host = '',
+        heartbeatPeriod = 0,
+
+    ) {
         super();
         this.path = path;
         this.host = host;
+        this.heartbeatPeriod = heartbeatPeriod;
     }
 
     static fromJson(json = {}) {
         return new WsStreamSettings(
             json.path,
             json.host,
+            json.heartbeatPeriod,
         );
     }
 
@@ -223,6 +230,7 @@ class WsStreamSettings extends CommonClass {
         return {
             path: this.path,
             host: this.host,
+            heartbeatPeriod: this.heartbeatPeriod
         };
     }
 }

+ 3 - 0
web/html/xui/form/outbound.html

@@ -337,6 +337,9 @@
           <a-form-item label='{{ i18n "path" }}'>
             <a-input v-model.trim="outbound.stream.ws.path"></a-input>
           </a-form-item>
+          <a-form-item label='Heartbeat Period'>
+            <a-input-number v-model.number="outbound.stream.ws.heartbeatPeriod" :min="0"></a-input-number>
+          </a-form-item>
         </template>
 
         <!-- http -->

+ 3 - 0
web/html/xui/form/stream/stream_ws.html

@@ -9,6 +9,9 @@
   <a-form-item label='{{ i18n "path" }}'>
     <a-input v-model.trim="inbound.stream.ws.path"></a-input>
   </a-form-item>
+  <a-form-item label='Heartbeat Period'>
+    <a-input-number v-model.number="inbound.stream.ws.heartbeatPeriod" :min="0"></a-input-number>
+  </a-form-item>
   <a-form-item label='{{ i18n "pages.inbounds.stream.tcp.requestHeader" }}'>
     <a-button icon="plus" size="small" @click="inbound.stream.ws.addHeader('host', '')"></a-button>
   </a-form-item>