interface.go 768 B

123456789101112131415161718192021222324252627282930313233
  1. package loadmodule
  2. import (
  3. "net/url"
  4. )
  5. type ProxyLoadType int
  6. const (
  7. RandomProxyModule ProxyLoadType = iota //随机
  8. RoundRobinProxyModule //轮询
  9. HashProxyModule //哈希
  10. )
  11. type ProxyLoadModule interface {
  12. Get(string) (*url.URL, error) //获取节点
  13. Add(string) error //添加节点
  14. Del(string) error //动态添加
  15. //ALlNodes() []url.URL //获取节点内容
  16. }
  17. func LoadProxyLoadFactory(value int) ProxyLoadModule {
  18. switch ProxyLoadType(value) {
  19. case RandomProxyModule: //随机
  20. return &RandomProxy{}
  21. case RoundRobinProxyModule: //轮询
  22. return &RoundRobinProxy{}
  23. case HashProxyModule: //哈希
  24. return &HashProxy{}
  25. default:
  26. return &RandomProxy{}
  27. }
  28. }