server.go 1.4 KB
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1
package core
Mr.奇淼('s avatar
Mr.奇淼( 已提交
2 3 4

import (
	"fmt"
Mr.奇淼('s avatar
Mr.奇淼( 已提交
5
	"gin-vue-admin/global"
6
	"gin-vue-admin/initialize"
7 8
	"github.com/fvbock/endless"
	"github.com/gin-gonic/gin"
Mr.奇淼('s avatar
Mr.奇淼( 已提交
9
	"net/http"
10
	"runtime"
Mr.奇淼('s avatar
Mr.奇淼( 已提交
11 12 13
	"time"
)

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
type server interface {
	ListenAndServe() error
}

func initServer(address string, router *gin.Engine) server {
	if runtime.GOOS == "windows" {
		return &http.Server{
			Addr:           address,
			Handler:        router,
			ReadTimeout:    10 * time.Second,
			WriteTimeout:   10 * time.Second,
			MaxHeaderBytes: 1 << 20,
		}
	}
	s := endless.NewServer(address, router)
	s.ReadHeaderTimeout = 10 * time.Millisecond
	s.WriteTimeout = 10 * time.Second
	s.MaxHeaderBytes = 1 << 20
	return s
}

Mr.奇淼('s avatar
Mr.奇淼( 已提交
35 36 37
func RunWindowsServer() {
	if global.GVA_CONFIG.System.UseMultipoint {
		// 初始化redis服务
38
		initialize.Redis()
Mr.奇淼('s avatar
Mr.奇淼( 已提交
39
	}
40
	Router := initialize.Routers()
Mr.奇淼('s avatar
Mr.奇淼( 已提交
41
	Router.Static("/form-generator", "./resource/page")
42

43
	//InstallPlugs(Router)
44
	// end 插件描述
Mr.奇淼('s avatar
Mr.奇淼( 已提交
45

Mr.奇淼('s avatar
Mr.奇淼( 已提交
46
	address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr)
47
	s := initServer(address, Router)
48 49
	// 保证文本顺序输出
	// In order to ensure that the text order output can be deleted
Mr.奇淼('s avatar
Mr.奇淼( 已提交
50
	time.Sleep(10 * time.Microsecond)
51
	global.GVA_LOG.Debug("server run success on ", address)
G
Granty1 已提交
52

Mr.奇淼('s avatar
Mr.奇淼( 已提交
53 54 55
	fmt.Printf(`欢迎使用 Gin-Vue-Admin
	默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
	默认前端文件运行地址:http://127.0.0.1:8080
56
`, address)
57
	global.GVA_LOG.Error(s.ListenAndServe())
Mr.奇淼('s avatar
Mr.奇淼( 已提交
58
}