main.go 1004 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "flag"
  4. "jycdp"
  5. "log"
  6. "net/http"
  7. )
  8. type (
  9. //RemoteBrowserConfig
  10. RemoteBrowserConfig struct {
  11. MaxUseTimeout int64 `yaml:"maxUseTimeout"`
  12. //公共ws代理地址
  13. PublishWebsocktAddr string `yaml:"publishWebsocktAddr"`
  14. Browseres []*RemoteBrowser `yaml:"remotebrowser"`
  15. }
  16. )
  17. var (
  18. addr = flag.String("proxy", ":9090", "服务监听地址")
  19. cfgFile = flag.String("cfg", "./config.yaml", "配置文件")
  20. cfg = new(RemoteBrowserConfig)
  21. )
  22. // init
  23. func init() {
  24. flag.Parse()
  25. //TODO默认加载配置文件,也可以调用接口动态加减
  26. err := jycdp.LoadConfig("./config.yaml", cfg)
  27. if err != nil {
  28. log.Fatal(err)
  29. }
  30. for _, c := range cfg.Browseres {
  31. ws, err := LoadRemoteBrowserCfg(c.HttpAddr)
  32. if err != nil {
  33. continue
  34. }
  35. log.Println(ws)
  36. c.WsAddr = ws
  37. c.RunStatus = browser_status_idle
  38. olrm.cache.Store(c.WsAddr, c)
  39. }
  40. }
  41. // main
  42. func main() {
  43. http.HandleFunc("/", ProxyHandler)
  44. http.ListenAndServe(*addr, nil)
  45. }