Compare commits

...

1 Commits

Author SHA1 Message Date
xream
2d5ed65f8d
feat: VMess 支持 kcp/quic 2025-05-27 00:34:31 +08:00
3 changed files with 17 additions and 3 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "sub-store", "name": "sub-store",
"version": "2.19.52", "version": "2.19.53",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
"main": "src/main.js", "main": "src/main.js",
"scripts": { "scripts": {

View File

@ -473,8 +473,8 @@ function URI_VMess() {
['http'].includes(params.type) ['http'].includes(params.type)
) { ) {
proxy.network = 'http'; proxy.network = 'http';
} else if (['grpc'].includes(params.net)) { } else if (['grpc', 'kcp', 'quic'].includes(params.net)) {
proxy.network = 'grpc'; proxy.network = params.net;
} else if ( } else if (
params.net === 'httpupgrade' || params.net === 'httpupgrade' ||
proxy.network === 'httpupgrade' proxy.network === 'httpupgrade'
@ -542,6 +542,10 @@ function URI_VMess() {
} }
proxy[`${proxy.network}-opts`] = opts; proxy[`${proxy.network}-opts`] = opts;
} }
} else if (['kcp', 'quic'].includes(proxy.network)) {
proxy[`${proxy.network}-opts`] = {
[`_${proxy.network}-type`]: getIfNotBlank(params.type),
};
} else { } else {
delete proxy.network; delete proxy.network;
} }

View File

@ -156,6 +156,16 @@ export default function URI_Producer() {
'gun'; 'gun';
result.host = result.host =
proxy[`${proxy.network}-opts`]?.['_grpc-authority']; proxy[`${proxy.network}-opts`]?.['_grpc-authority'];
} else if (['kcp', 'quic'].includes(proxy.network)) {
result.path =
proxy[`${proxy.network}-opts`]?.[
'grpc-service-name'
];
// https://github.com/XTLS/Xray-core/issues/91
result.type =
proxy[`${proxy.network}-opts`]?.[
`_${proxy.network}-type`
] || 'none';
} }
} }
result = 'vmess://' + Base64.encode(JSON.stringify(result)); result = 'vmess://' + Base64.encode(JSON.stringify(result));