package main import ( "flag" "jycdp" "log" "net/http" ) type ( //RemoteBrowserConfig RemoteBrowserConfig struct { MaxUseTimeout int64 `yaml:"maxUseTimeout"` //公共ws代理地址 PublishWebsocktAddr string `yaml:"publishWebsocktAddr"` Browseres []*RemoteBrowser `yaml:"remotebrowser"` } ) var ( addr = flag.String("proxy", ":9090", "服务监听地址") cfgFile = flag.String("cfg", "./config.yaml", "配置文件") cfg = new(RemoteBrowserConfig) ) // init func init() { flag.Parse() //TODO默认加载配置文件,也可以调用接口动态加减 err := jycdp.LoadConfig("./config.yaml", cfg) if err != nil { log.Fatal(err) } for _, c := range cfg.Browseres { ws, err := LoadRemoteBrowserCfg(c.HttpAddr) if err != nil { continue } log.Println(ws) c.WsAddr = ws c.RunStatus = browser_status_idle olrm.cache.Store(c.WsAddr, c) } } // main func main() { http.HandleFunc("/", ProxyHandler) http.ListenAndServe(*addr, nil) }