| 1234567891011121314151617181920212223242526 |
- package router
- import (
- "github.com/v2fly/v2ray-core/v4/common"
- "github.com/v2fly/v2ray-core/v4/common/dice"
- )
- // RandomStrategy represents a random balancing strategy
- type RandomStrategy struct{}
- func (s *RandomStrategy) GetPrincipleTarget(strings []string) []string {
- return strings
- }
- func (s *RandomStrategy) PickOutbound(candidates []string) string {
- count := len(candidates)
- if count == 0 {
- // goes to fallbackTag
- return ""
- }
- return candidates[dice.Roll(count)]
- }
- func init() {
- common.Must(common.RegisterConfig((*StrategyRandomConfig)(nil), nil))
- }
|