agent.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "flag"
  4. "log"
  5. "nginx-ui/agent"
  6. "nginx-ui/server/models"
  7. "os"
  8. "time"
  9. )
  10. func look(serverUrl string, ssl string, token string) {
  11. for {
  12. c := agent.NewAgent(serverUrl, ssl, token)
  13. c.SetMessageHandler(models.NginxUpdateType, agent.OnNginxUpdated)
  14. c.SetMessageHandler(models.AgentCmdType, agent.OnCMD)
  15. c.SetMessageHandler(models.SendFileType, agent.OnSendFile)
  16. c.SetMessageHandler(models.ServerConnected, agent.OnServerConnected)
  17. err := c.Run()
  18. if err != nil {
  19. log.Println("agent err:", err)
  20. time.Sleep(5 * time.Second)
  21. }
  22. }
  23. }
  24. // 代理服务
  25. func main() {
  26. serverUrl := flag.String("server", "127.0.0.1:8080/nginx-ui/api", "agent host and path ,eg:127.0.0.1:8080/nginx-ui/api")
  27. ssl := flag.String("ssl", "N", "use ssl,https or wss,Y or N")
  28. token := flag.String("token", "", "token")
  29. flag.Parse()
  30. envUrl := os.Getenv("SERVER_URL")
  31. envSSL := os.Getenv("SSL")
  32. envToken := os.Getenv("TOKEN")
  33. if len(envUrl) > 0 {
  34. serverUrl = &envUrl
  35. }
  36. if len(envSSL) > 0 {
  37. ssl = &envSSL
  38. }
  39. if len(envToken) > 0 {
  40. token = &envToken
  41. }
  42. log.Printf("agent server url: %s", *serverUrl)
  43. look(*serverUrl, *ssl, *token)
  44. }