mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-03-01 01:20:49 +03:00
Transport: Remove HTTP
Migrated to XHTTP "stream-one" mode.
This commit is contained in:
parent
ddc2cfacb9
commit
4efcdb3e01
@ -208,11 +208,6 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string) string {
|
|||||||
headers, _ := ws["headers"].(map[string]interface{})
|
headers, _ := ws["headers"].(map[string]interface{})
|
||||||
obj["host"] = searchHost(headers)
|
obj["host"] = searchHost(headers)
|
||||||
}
|
}
|
||||||
case "http":
|
|
||||||
obj["net"] = "h2"
|
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
|
||||||
obj["path"], _ = http["path"].(string)
|
|
||||||
obj["host"] = searchHost(http)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
obj["path"] = grpc["serviceName"].(string)
|
obj["path"] = grpc["serviceName"].(string)
|
||||||
@ -361,10 +356,6 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string {
|
|||||||
headers, _ := ws["headers"].(map[string]interface{})
|
headers, _ := ws["headers"].(map[string]interface{})
|
||||||
params["host"] = searchHost(headers)
|
params["host"] = searchHost(headers)
|
||||||
}
|
}
|
||||||
case "http":
|
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
|
||||||
params["path"] = http["path"].(string)
|
|
||||||
params["host"] = searchHost(http)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
params["serviceName"] = grpc["serviceName"].(string)
|
params["serviceName"] = grpc["serviceName"].(string)
|
||||||
@ -559,10 +550,6 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string
|
|||||||
headers, _ := ws["headers"].(map[string]interface{})
|
headers, _ := ws["headers"].(map[string]interface{})
|
||||||
params["host"] = searchHost(headers)
|
params["host"] = searchHost(headers)
|
||||||
}
|
}
|
||||||
case "http":
|
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
|
||||||
params["path"] = http["path"].(string)
|
|
||||||
params["host"] = searchHost(http)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
params["serviceName"] = grpc["serviceName"].(string)
|
params["serviceName"] = grpc["serviceName"].(string)
|
||||||
@ -757,10 +744,6 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string) st
|
|||||||
headers, _ := ws["headers"].(map[string]interface{})
|
headers, _ := ws["headers"].(map[string]interface{})
|
||||||
params["host"] = searchHost(headers)
|
params["host"] = searchHost(headers)
|
||||||
}
|
}
|
||||||
case "http":
|
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
|
||||||
params["path"] = http["path"].(string)
|
|
||||||
params["host"] = searchHost(http)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
params["serviceName"] = grpc["serviceName"].(string)
|
params["serviceName"] = grpc["serviceName"].(string)
|
||||||
|
@ -419,42 +419,6 @@ class WsStreamSettings extends XrayCommonClass {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class HttpStreamSettings extends XrayCommonClass {
|
|
||||||
constructor(
|
|
||||||
path = '/',
|
|
||||||
host = [''],
|
|
||||||
) {
|
|
||||||
super();
|
|
||||||
this.path = path;
|
|
||||||
this.host = host.length === 0 ? [''] : host;
|
|
||||||
}
|
|
||||||
|
|
||||||
addHost(host) {
|
|
||||||
this.host.push(host);
|
|
||||||
}
|
|
||||||
|
|
||||||
removeHost(index) {
|
|
||||||
this.host.splice(index, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static fromJson(json = {}) {
|
|
||||||
return new HttpStreamSettings(json.path, json.host);
|
|
||||||
}
|
|
||||||
|
|
||||||
toJson() {
|
|
||||||
let host = [];
|
|
||||||
for (let i = 0; i < this.host.length; ++i) {
|
|
||||||
if (!ObjectUtil.isEmpty(this.host[i])) {
|
|
||||||
host.push(this.host[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
path: this.path,
|
|
||||||
host: host,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class GrpcStreamSettings extends XrayCommonClass {
|
class GrpcStreamSettings extends XrayCommonClass {
|
||||||
constructor(
|
constructor(
|
||||||
serviceName = "",
|
serviceName = "",
|
||||||
@ -958,7 +922,6 @@ class StreamSettings extends XrayCommonClass {
|
|||||||
tcpSettings = new TcpStreamSettings(),
|
tcpSettings = new TcpStreamSettings(),
|
||||||
kcpSettings = new KcpStreamSettings(),
|
kcpSettings = new KcpStreamSettings(),
|
||||||
wsSettings = new WsStreamSettings(),
|
wsSettings = new WsStreamSettings(),
|
||||||
httpSettings = new HttpStreamSettings(),
|
|
||||||
grpcSettings = new GrpcStreamSettings(),
|
grpcSettings = new GrpcStreamSettings(),
|
||||||
httpupgradeSettings = new HTTPUpgradeStreamSettings(),
|
httpupgradeSettings = new HTTPUpgradeStreamSettings(),
|
||||||
xhttpSettings = new xHTTPStreamSettings(),
|
xhttpSettings = new xHTTPStreamSettings(),
|
||||||
@ -973,7 +936,6 @@ class StreamSettings extends XrayCommonClass {
|
|||||||
this.tcp = tcpSettings;
|
this.tcp = tcpSettings;
|
||||||
this.kcp = kcpSettings;
|
this.kcp = kcpSettings;
|
||||||
this.ws = wsSettings;
|
this.ws = wsSettings;
|
||||||
this.http = httpSettings;
|
|
||||||
this.grpc = grpcSettings;
|
this.grpc = grpcSettings;
|
||||||
this.httpupgrade = httpupgradeSettings;
|
this.httpupgrade = httpupgradeSettings;
|
||||||
this.xhttp = xhttpSettings;
|
this.xhttp = xhttpSettings;
|
||||||
@ -1023,7 +985,6 @@ class StreamSettings extends XrayCommonClass {
|
|||||||
TcpStreamSettings.fromJson(json.tcpSettings),
|
TcpStreamSettings.fromJson(json.tcpSettings),
|
||||||
KcpStreamSettings.fromJson(json.kcpSettings),
|
KcpStreamSettings.fromJson(json.kcpSettings),
|
||||||
WsStreamSettings.fromJson(json.wsSettings),
|
WsStreamSettings.fromJson(json.wsSettings),
|
||||||
HttpStreamSettings.fromJson(json.httpSettings),
|
|
||||||
GrpcStreamSettings.fromJson(json.grpcSettings),
|
GrpcStreamSettings.fromJson(json.grpcSettings),
|
||||||
HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings),
|
HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings),
|
||||||
xHTTPStreamSettings.fromJson(json.xhttpSettings),
|
xHTTPStreamSettings.fromJson(json.xhttpSettings),
|
||||||
@ -1042,7 +1003,6 @@ class StreamSettings extends XrayCommonClass {
|
|||||||
tcpSettings: network === 'tcp' ? this.tcp.toJson() : undefined,
|
tcpSettings: network === 'tcp' ? this.tcp.toJson() : undefined,
|
||||||
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
||||||
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
||||||
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
|
||||||
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
||||||
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
||||||
xhttpSettings: network === 'xhttp' ? this.xhttp.toJson() : undefined,
|
xhttpSettings: network === 'xhttp' ? this.xhttp.toJson() : undefined,
|
||||||
@ -1174,10 +1134,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
return this.network === "grpc";
|
return this.network === "grpc";
|
||||||
}
|
}
|
||||||
|
|
||||||
get isH2() {
|
|
||||||
return this.network === "http";
|
|
||||||
}
|
|
||||||
|
|
||||||
get isHttpupgrade() {
|
get isHttpupgrade() {
|
||||||
return this.network === "httpupgrade";
|
return this.network === "httpupgrade";
|
||||||
}
|
}
|
||||||
@ -1222,8 +1178,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
return this.getHeader(this.stream.tcp.request, 'host');
|
return this.getHeader(this.stream.tcp.request, 'host');
|
||||||
} else if (this.isWs) {
|
} else if (this.isWs) {
|
||||||
return this.stream.ws.host?.length > 0 ? this.stream.ws.host : this.getHeader(this.stream.ws, 'host');
|
return this.stream.ws.host?.length > 0 ? this.stream.ws.host : this.getHeader(this.stream.ws, 'host');
|
||||||
} else if (this.isH2) {
|
|
||||||
return this.stream.http.host[0];
|
|
||||||
} else if (this.isHttpupgrade) {
|
} else if (this.isHttpupgrade) {
|
||||||
return this.stream.httpupgrade.host?.length > 0 ? this.stream.httpupgrade.host : this.getHeader(this.stream.httpupgrade, 'host');
|
return this.stream.httpupgrade.host?.length > 0 ? this.stream.httpupgrade.host : this.getHeader(this.stream.httpupgrade, 'host');
|
||||||
} else if (this.isXHTTP) {
|
} else if (this.isXHTTP) {
|
||||||
@ -1237,8 +1191,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
return this.stream.tcp.request.path[0];
|
return this.stream.tcp.request.path[0];
|
||||||
} else if (this.isWs) {
|
} else if (this.isWs) {
|
||||||
return this.stream.ws.path;
|
return this.stream.ws.path;
|
||||||
} else if (this.isH2) {
|
|
||||||
return this.stream.http.path;
|
|
||||||
} else if (this.isHttpupgrade) {
|
} else if (this.isHttpupgrade) {
|
||||||
return this.stream.httpupgrade.path;
|
return this.stream.httpupgrade.path;
|
||||||
} else if (this.isXHTTP) {
|
} else if (this.isXHTTP) {
|
||||||
@ -1331,10 +1283,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
const ws = this.stream.ws;
|
const ws = this.stream.ws;
|
||||||
obj.path = ws.path;
|
obj.path = ws.path;
|
||||||
obj.host = ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host');
|
obj.host = ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host');
|
||||||
} else if (network === 'http') {
|
|
||||||
obj.net = 'h2';
|
|
||||||
obj.path = this.stream.http.path;
|
|
||||||
obj.host = this.stream.http.host.join(',');
|
|
||||||
} else if (network === 'grpc') {
|
} else if (network === 'grpc') {
|
||||||
obj.path = this.stream.grpc.serviceName;
|
obj.path = this.stream.grpc.serviceName;
|
||||||
obj.authority = this.stream.grpc.authority;
|
obj.authority = this.stream.grpc.authority;
|
||||||
@ -1400,11 +1348,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
params.set("path", ws.path);
|
params.set("path", ws.path);
|
||||||
params.set("host", ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host'));
|
params.set("host", ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host'));
|
||||||
break;
|
break;
|
||||||
case "http":
|
|
||||||
const http = this.stream.http;
|
|
||||||
params.set("path", http.path);
|
|
||||||
params.set("host", http.host);
|
|
||||||
break;
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
const grpc = this.stream.grpc;
|
const grpc = this.stream.grpc;
|
||||||
params.set("serviceName", grpc.serviceName);
|
params.set("serviceName", grpc.serviceName);
|
||||||
@ -1504,11 +1447,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
params.set("path", ws.path);
|
params.set("path", ws.path);
|
||||||
params.set("host", ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host'));
|
params.set("host", ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host'));
|
||||||
break;
|
break;
|
||||||
case "http":
|
|
||||||
const http = this.stream.http;
|
|
||||||
params.set("path", http.path);
|
|
||||||
params.set("host", http.host);
|
|
||||||
break;
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
const grpc = this.stream.grpc;
|
const grpc = this.stream.grpc;
|
||||||
params.set("serviceName", grpc.serviceName);
|
params.set("serviceName", grpc.serviceName);
|
||||||
@ -1587,11 +1525,6 @@ class Inbound extends XrayCommonClass {
|
|||||||
params.set("path", ws.path);
|
params.set("path", ws.path);
|
||||||
params.set("host", ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host'));
|
params.set("host", ws.host?.length > 0 ? ws.host : this.getHeader(ws, 'host'));
|
||||||
break;
|
break;
|
||||||
case "http":
|
|
||||||
const http = this.stream.http;
|
|
||||||
params.set("path", http.path);
|
|
||||||
params.set("host", http.host);
|
|
||||||
break;
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
const grpc = this.stream.grpc;
|
const grpc = this.stream.grpc;
|
||||||
params.set("serviceName", grpc.serviceName);
|
params.set("serviceName", grpc.serviceName);
|
||||||
|
@ -235,59 +235,6 @@ class WsStreamSettings extends CommonClass {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class HttpStreamSettings extends CommonClass {
|
|
||||||
constructor(path = '/', host = '') {
|
|
||||||
super();
|
|
||||||
this.path = path;
|
|
||||||
this.host = host;
|
|
||||||
}
|
|
||||||
|
|
||||||
static fromJson(json = {}) {
|
|
||||||
return new HttpStreamSettings(
|
|
||||||
json.path,
|
|
||||||
json.host ? json.host.join(',') : '',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
toJson() {
|
|
||||||
return {
|
|
||||||
path: this.path,
|
|
||||||
host: ObjectUtil.isEmpty(this.host) ? [''] : this.host.split(','),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class QuicStreamSettings extends CommonClass {
|
|
||||||
constructor(
|
|
||||||
security = 'none',
|
|
||||||
key = '',
|
|
||||||
type = 'none'
|
|
||||||
) {
|
|
||||||
super();
|
|
||||||
this.security = security;
|
|
||||||
this.key = key;
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
static fromJson(json = {}) {
|
|
||||||
return new QuicStreamSettings(
|
|
||||||
json.security,
|
|
||||||
json.key,
|
|
||||||
json.header ? json.header.type : 'none',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
toJson() {
|
|
||||||
return {
|
|
||||||
security: this.security,
|
|
||||||
key: this.key,
|
|
||||||
header: {
|
|
||||||
type: this.type,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class GrpcStreamSettings extends CommonClass {
|
class GrpcStreamSettings extends CommonClass {
|
||||||
constructor(
|
constructor(
|
||||||
serviceName = "",
|
serviceName = "",
|
||||||
@ -478,8 +425,6 @@ class StreamSettings extends CommonClass {
|
|||||||
tcpSettings = new TcpStreamSettings(),
|
tcpSettings = new TcpStreamSettings(),
|
||||||
kcpSettings = new KcpStreamSettings(),
|
kcpSettings = new KcpStreamSettings(),
|
||||||
wsSettings = new WsStreamSettings(),
|
wsSettings = new WsStreamSettings(),
|
||||||
httpSettings = new HttpStreamSettings(),
|
|
||||||
quicSettings = new QuicStreamSettings(),
|
|
||||||
grpcSettings = new GrpcStreamSettings(),
|
grpcSettings = new GrpcStreamSettings(),
|
||||||
httpupgradeSettings = new HttpUpgradeStreamSettings(),
|
httpupgradeSettings = new HttpUpgradeStreamSettings(),
|
||||||
xhttpSettings = new xHTTPStreamSettings(),
|
xhttpSettings = new xHTTPStreamSettings(),
|
||||||
@ -493,7 +438,6 @@ class StreamSettings extends CommonClass {
|
|||||||
this.tcp = tcpSettings;
|
this.tcp = tcpSettings;
|
||||||
this.kcp = kcpSettings;
|
this.kcp = kcpSettings;
|
||||||
this.ws = wsSettings;
|
this.ws = wsSettings;
|
||||||
this.http = httpSettings;
|
|
||||||
this.grpc = grpcSettings;
|
this.grpc = grpcSettings;
|
||||||
this.httpupgrade = httpupgradeSettings;
|
this.httpupgrade = httpupgradeSettings;
|
||||||
this.xhttp = xhttpSettings;
|
this.xhttp = xhttpSettings;
|
||||||
@ -525,8 +469,6 @@ class StreamSettings extends CommonClass {
|
|||||||
TcpStreamSettings.fromJson(json.tcpSettings),
|
TcpStreamSettings.fromJson(json.tcpSettings),
|
||||||
KcpStreamSettings.fromJson(json.kcpSettings),
|
KcpStreamSettings.fromJson(json.kcpSettings),
|
||||||
WsStreamSettings.fromJson(json.wsSettings),
|
WsStreamSettings.fromJson(json.wsSettings),
|
||||||
HttpStreamSettings.fromJson(json.httpSettings),
|
|
||||||
QuicStreamSettings.fromJson(json.quicSettings),
|
|
||||||
GrpcStreamSettings.fromJson(json.grpcSettings),
|
GrpcStreamSettings.fromJson(json.grpcSettings),
|
||||||
HttpUpgradeStreamSettings.fromJson(json.httpupgradeSettings),
|
HttpUpgradeStreamSettings.fromJson(json.httpupgradeSettings),
|
||||||
xHTTPStreamSettings.fromJson(json.xhttpSettings),
|
xHTTPStreamSettings.fromJson(json.xhttpSettings),
|
||||||
@ -544,7 +486,6 @@ class StreamSettings extends CommonClass {
|
|||||||
tcpSettings: network === 'tcp' ? this.tcp.toJson() : undefined,
|
tcpSettings: network === 'tcp' ? this.tcp.toJson() : undefined,
|
||||||
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
||||||
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
||||||
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
|
||||||
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
||||||
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
||||||
xhttpSettings: network === 'xhttp' ? this.xhttp.toJson() : undefined,
|
xhttpSettings: network === 'xhttp' ? this.xhttp.toJson() : undefined,
|
||||||
@ -585,7 +526,7 @@ class Mux extends CommonClass {
|
|||||||
class Outbound extends CommonClass {
|
class Outbound extends CommonClass {
|
||||||
constructor(
|
constructor(
|
||||||
tag = '',
|
tag = '',
|
||||||
protocol = Protocols.VMess,
|
protocol = Protocols.VLESS,
|
||||||
settings = null,
|
settings = null,
|
||||||
streamSettings = new StreamSettings(),
|
streamSettings = new StreamSettings(),
|
||||||
sendThrough,
|
sendThrough,
|
||||||
@ -723,11 +664,6 @@ class Outbound extends CommonClass {
|
|||||||
stream.seed = json.path;
|
stream.seed = json.path;
|
||||||
} else if (network === 'ws') {
|
} else if (network === 'ws') {
|
||||||
stream.ws = new WsStreamSettings(json.path, json.host);
|
stream.ws = new WsStreamSettings(json.path, json.host);
|
||||||
} else if (network === 'http' || network == 'h2') {
|
|
||||||
stream.network = 'http'
|
|
||||||
stream.http = new HttpStreamSettings(
|
|
||||||
json.path,
|
|
||||||
json.host);
|
|
||||||
} else if (network === 'grpc') {
|
} else if (network === 'grpc') {
|
||||||
stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi');
|
stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi');
|
||||||
} else if (network === 'httpupgrade') {
|
} else if (network === 'httpupgrade') {
|
||||||
@ -767,8 +703,6 @@ class Outbound extends CommonClass {
|
|||||||
stream.kcp.seed = path;
|
stream.kcp.seed = path;
|
||||||
} else if (type === 'ws') {
|
} else if (type === 'ws') {
|
||||||
stream.ws = new WsStreamSettings(path, host);
|
stream.ws = new WsStreamSettings(path, host);
|
||||||
} else if (type === 'http' || type == 'h2') {
|
|
||||||
stream.http = new HttpStreamSettings(path, host);
|
|
||||||
} else if (type === 'grpc') {
|
} else if (type === 'grpc') {
|
||||||
stream.grpc = new GrpcStreamSettings(
|
stream.grpc = new GrpcStreamSettings(
|
||||||
url.searchParams.get('serviceName') ?? '',
|
url.searchParams.get('serviceName') ?? '',
|
||||||
|
@ -270,7 +270,6 @@
|
|||||||
<a-select-option value="tcp">TCP (RAW)</a-select-option>
|
<a-select-option value="tcp">TCP (RAW)</a-select-option>
|
||||||
<a-select-option value="kcp">mKCP</a-select-option>
|
<a-select-option value="kcp">mKCP</a-select-option>
|
||||||
<a-select-option value="ws">WebSocket</a-select-option>
|
<a-select-option value="ws">WebSocket</a-select-option>
|
||||||
<a-select-option value="http">HTTP</a-select-option>
|
|
||||||
<a-select-option value="grpc">gRPC</a-select-option>
|
<a-select-option value="grpc">gRPC</a-select-option>
|
||||||
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
||||||
<a-select-option value="xhttp">XHTTP</a-select-option>
|
<a-select-option value="xhttp">XHTTP</a-select-option>
|
||||||
@ -342,16 +341,6 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- http -->
|
|
||||||
<template v-if="outbound.stream.network === 'http'">
|
|
||||||
<a-form-item label='{{ i18n "host" }}'>
|
|
||||||
<a-input v-model.trim="outbound.stream.http.host"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label='{{ i18n "path" }}'>
|
|
||||||
<a-input v-model.trim="outbound.stream.http.path"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- grpc -->
|
<!-- grpc -->
|
||||||
<template v-if="outbound.stream.network === 'grpc'">
|
<template v-if="outbound.stream.network === 'grpc'">
|
||||||
<a-form-item label='Service Name'>
|
<a-form-item label='Service Name'>
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
{{define "form/streamHTTP"}}
|
|
||||||
<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
|
|
||||||
<a-form-item label='{{ i18n "path" }}'>
|
|
||||||
<a-input v-model.trim="inbound.stream.http.path"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item>
|
|
||||||
<template slot="label">{{ i18n "host" }}
|
|
||||||
<a-button icon="plus" size="small" @click="inbound.stream.http.addHost()"></a-button>
|
|
||||||
</template>
|
|
||||||
<template v-for="(host, index) in inbound.stream.http.host">
|
|
||||||
<a-input v-model.trim="inbound.stream.http.host[index]">
|
|
||||||
<a-button icon="minus" size="small" slot="addonAfter" @click="inbound.stream.http.removeHost(index)" v-if="inbound.stream.http.host.length>1"></a-button>
|
|
||||||
</a-input>
|
|
||||||
</template>
|
|
||||||
</a-form-item>
|
|
||||||
</a-form>
|
|
||||||
{{end}}
|
|
@ -7,7 +7,6 @@
|
|||||||
<a-select-option value="tcp">TCP (RAW)</a-select-option>
|
<a-select-option value="tcp">TCP (RAW)</a-select-option>
|
||||||
<a-select-option value="kcp">mKCP</a-select-option>
|
<a-select-option value="kcp">mKCP</a-select-option>
|
||||||
<a-select-option value="ws">WebSocket</a-select-option>
|
<a-select-option value="ws">WebSocket</a-select-option>
|
||||||
<a-select-option value="http">HTTP</a-select-option>
|
|
||||||
<a-select-option value="grpc">gRPC</a-select-option>
|
<a-select-option value="grpc">gRPC</a-select-option>
|
||||||
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
||||||
<a-select-option value="xhttp">XHTTP</a-select-option>
|
<a-select-option value="xhttp">XHTTP</a-select-option>
|
||||||
@ -30,11 +29,6 @@
|
|||||||
{{template "form/streamWS"}}
|
{{template "form/streamWS"}}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- http -->
|
|
||||||
<template v-if="inbound.stream.network === 'http'">
|
|
||||||
{{template "form/streamHTTP"}}
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- grpc -->
|
<!-- grpc -->
|
||||||
<template v-if="inbound.stream.network === 'grpc'">
|
<template v-if="inbound.stream.network === 'grpc'">
|
||||||
{{template "form/streamGRPC"}}
|
{{template "form/streamGRPC"}}
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
<a-tag color="green">[[ inbound.network ]]</a-tag>
|
<a-tag color="green">[[ inbound.network ]]</a-tag>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<template v-if="inbound.isTcp || inbound.isWs || inbound.isH2 || inbound.isHttpupgrade || inbound.isXHTTP">
|
<template v-if="inbound.isTcp || inbound.isWs || inbound.isHttpupgrade || inbound.isXHTTP">
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ i18n "host" }}</td>
|
<td>{{ i18n "host" }}</td>
|
||||||
<td v-if="inbound.host">
|
<td v-if="inbound.host">
|
||||||
|
Loading…
Reference in New Issue
Block a user