diff options
| author | lolka1333 <xtrafcyz@gmail.com> | 2026-01-03 07:26:00 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-03 07:26:00 +0300 |
| commit | 313a2acbf66125feb4b145a5636351ed03e666da (patch) | |
| tree | 6be6fac0ced2d0dce60ba55e2feaa83c257ed720 /xray/api.go | |
| parent | b7477302112b43a2ae037b63994c59e85f9c0687 (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.go | 27 |
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), |
