Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlolka1333 <xtrafcyz@gmail.com>2026-01-03 07:26:00 +0300
committerGitHub <noreply@github.com>2026-01-03 07:26:00 +0300
commit313a2acbf66125feb4b145a5636351ed03e666da (patch)
tree6be6fac0ced2d0dce60ba55e2feaa83c257ed720 /xray/api.go
parentb7477302112b43a2ae037b63994c59e85f9c0687 (diff)
feat: Add WebSocket support for real-time updates and enhance VLESS settings (#3605)
* feat: add support for trusted X-Forwarded-For and testseed parameters in VLESS settings * chore: update Xray Core version to 25.12.8 in release workflow * chore: update Xray Core version to 25.12.8 in Docker initialization script * chore: bump version to 2.8.6 and add watcher for security changes in inbound modal * refactor: remove default and random seed buttons from outbound form * refactor: update VLESS form to rename 'Test Seed' to 'Vision Seed' and change button functionality for seed generation * refactor: enhance TLS settings form layout with improved button styling and spacing * feat: integrate WebSocket support for real-time updates on inbounds and Xray service status * chore: downgrade version to 2.8.5 * refactor: translate comments to English * fix: ensure testseed is initialized correctly for VLESS protocol and improve client handling in inbound modal * refactor: simplify VLESS divider condition by removing unnecessary flow checks * fix: add fallback date formatting for cases when IntlUtil is not available * refactor: simplify WebSocket message handling by removing batching and ensuring individual message delivery * refactor: disable WebSocket notifications in inbound and index HTML files * refactor: enhance VLESS testseed initialization and button functionality in inbound modal * fix: * refactor: ensure proper WebSocket URL construction by normalizing basePath * fix: * fix: * fix: * refactor: update testseed methods for improved reactivity and binding in VLESS form * logger info to debug --------- Co-authored-by: lolka1333 <test123@gmail.com>
Diffstat (limited to 'xray/api.go')
-rw-r--r--xray/api.go27
1 files changed, 25 insertions, 2 deletions
diff --git a/xray/api.go b/xray/api.go
index 11119709..95d8c473 100644
--- a/xray/api.go
+++ b/xray/api.go
@@ -110,10 +110,33 @@ func (x *XrayAPI) AddUser(Protocol string, inboundTag string, user map[string]an
Id: user["id"].(string),
})
case "vless":
- account = serial.ToTypedMessage(&vless.Account{
+ vlessAccount := &vless.Account{
Id: user["id"].(string),
Flow: user["flow"].(string),
- })
+ }
+ // Add testseed if provided
+ if testseedVal, ok := user["testseed"]; ok {
+ if testseedArr, ok := testseedVal.([]interface{}); ok && len(testseedArr) >= 4 {
+ testseed := make([]uint32, len(testseedArr))
+ for i, v := range testseedArr {
+ if num, ok := v.(float64); ok {
+ testseed[i] = uint32(num)
+ }
+ }
+ vlessAccount.Testseed = testseed
+ } else if testseedArr, ok := testseedVal.([]uint32); ok && len(testseedArr) >= 4 {
+ vlessAccount.Testseed = testseedArr
+ }
+ }
+ // Add testpre if provided (for outbound, but can be in user for compatibility)
+ if testpreVal, ok := user["testpre"]; ok {
+ if testpre, ok := testpreVal.(float64); ok && testpre > 0 {
+ vlessAccount.Testpre = uint32(testpre)
+ } else if testpre, ok := testpreVal.(uint32); ok && testpre > 0 {
+ vlessAccount.Testpre = testpre
+ }
+ }
+ account = serial.ToTypedMessage(vlessAccount)
case "trojan":
account = serial.ToTypedMessage(&trojan.Account{
Password: user["password"].(string),