server.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package core
  2. import (
  3. "fmt"
  4. "gin-vue-admin/global"
  5. "gin-vue-admin/initialize"
  6. "github.com/fvbock/endless"
  7. "github.com/gin-gonic/gin"
  8. "net/http"
  9. "runtime"
  10. "time"
  11. )
  12. type server interface {
  13. ListenAndServe() error
  14. }
  15. func initServer(address string, router *gin.Engine) server {
  16. if runtime.GOOS == "windows" {
  17. return &http.Server{
  18. Addr: address,
  19. Handler: router,
  20. ReadTimeout: 10 * time.Second,
  21. WriteTimeout: 10 * time.Second,
  22. MaxHeaderBytes: 1 << 20,
  23. }
  24. }
  25. s := endless.NewServer(address, router)
  26. s.ReadHeaderTimeout = 10 * time.Millisecond
  27. s.WriteTimeout = 10 * time.Second
  28. s.MaxHeaderBytes = 1 << 20
  29. return s
  30. }
  31. func RunWindowsServer() {
  32. if global.GVA_CONFIG.System.UseMultipoint {
  33. // 初始化redis服务
  34. initialize.Redis()
  35. }
  36. Router := initialize.Routers()
  37. Router.Static("/form-generator", "./resource/page")
  38. //InstallPlugs(Router)
  39. // end 插件描述
  40. address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr)
  41. s := initServer(address, Router)
  42. // 保证文本顺序输出
  43. // In order to ensure that the text order output can be deleted
  44. time.Sleep(10 * time.Microsecond)
  45. global.GVA_LOG.Debug("server run success on ", address)
  46. fmt.Printf(`欢迎使用 Gin-Vue-Admin
  47. 默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
  48. 默认前端文件运行地址:http://127.0.0.1:8080
  49. `, address)
  50. global.GVA_LOG.Error(s.ListenAndServe())
  51. }