diff --git a/web/assets/js/model/xray.js b/web/assets/js/model/xray.js
index 80f2ac15..93bccc31 100644
--- a/web/assets/js/model/xray.js
+++ b/web/assets/js/model/xray.js
@@ -914,18 +914,20 @@ class RealityStreamSettings extends XrayCommonClass {
minClient = '',
maxClient = '',
maxTimediff = 0,
- shortIds = RandomUtil.randomShortId(),
+ shortIds = RandomUtil.randomShortIds(),
settings = new RealityStreamSettings.Settings()
) {
super();
this.show = show;
this.xver = xver;
this.dest = dest;
+ /** @type {string} */
this.serverNames = Array.isArray(serverNames) ? serverNames.join(",") : serverNames;
this.privateKey = privateKey;
this.minClient = minClient;
this.maxClient = maxClient;
this.maxTimediff = maxTimediff;
+ /** @type {string} */
this.shortIds = Array.isArray(shortIds) ? shortIds.join(",") : shortIds;
this.settings = settings;
}
diff --git a/web/assets/js/util/utils.js b/web/assets/js/util/utils.js
index f726e72e..46d1053a 100644
--- a/web/assets/js/util/utils.js
+++ b/web/assets/js/util/utils.js
@@ -99,13 +99,15 @@ class RandomUtil {
return str;
}
- static randomShortId() {
+ /** @return {string} */
+ static randomShortIds() {
const lengths = [2, 4, 6, 8, 10, 12, 14, 16];
for (let i = lengths.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[lengths[i], lengths[j]] = [lengths[j], lengths[i]];
}
+ /** @type {string[]} */
let shortIds = [];
for (let length of lengths) {
let shortId = '';
@@ -114,7 +116,7 @@ class RandomUtil {
}
shortIds.push(shortId);
}
- return shortIds;
+ return shortIds.join(',');
}
static randomLowerAndNum(len) {
diff --git a/web/html/xui/form/tls_settings.html b/web/html/xui/form/tls_settings.html
index d6b0dd18..f743ea7b 100644
--- a/web/html/xui/form/tls_settings.html
+++ b/web/html/xui/form/tls_settings.html
@@ -189,7 +189,7 @@
{{ i18n "reset" }}
- Short ID
+ Short IDs