── ConfigHasher ───────────────────────────────────────────────── ConfigHasher 返回一个函数,给 DefaultHelloProvider 使用。 hash 由当前 xray 配置中的"用户列表 + inbound 倍率"规范化后 SHA256 得到, 仅在影响下发的关键字段变化时改变(用户增删、UUID/secret 变化、启用状态变化、 inbound 倍率变化),server 端可据此判断是否需要重下发配置。 算法实现位于 internal/nodes/confighash 共享包,与 server 侧保持字
(api *nodeapi.API)
| 283 | // |
| 284 | // 算法实现位于 internal/nodes/confighash 共享包,与 server 侧保持字节一致。 |
| 285 | func ConfigHasher(api *nodeapi.API) func() string { |
| 286 | return func() string { |
| 287 | if api == nil { |
| 288 | return "" |
| 289 | } |
| 290 | raw := api.DoConfig() |
| 291 | cfgStr, _ := raw["config"].(string) |
| 292 | if cfgStr == "" { |
| 293 | return "" |
| 294 | } |
| 295 | return confighash.HashFromXrayJSON(cfgStr) |
| 296 | } |
| 297 | } |