示例#1
0
func main() {
	r.Register()
	go r.H.Run()
	http.HandleFunc("/ws/timeLine", r.ServeWs)
	http.ListenAndServe(":80", nil)
	shutdownHook()
}
示例#2
0
func main() {
	defer log.Flush()
	log.Infof("app start")

	// load config
	config = util.LoadConfig()
	log.Debug(config)
	// session init
	session.LoadSession(config["session.name"], config["session.maxAge"])
	// route init
	route.LoadRoute(config["static.base"])
	router := route.Register()
	// view init
	var isCache bool
	if config["view.isCache"] == "true" {
		isCache = true
	} else {
		isCache = false
	}
	view.LoadView(config["view.postFix"], config["view.layoutFolder"], config["view.defaultLayout"],
		config["view.folder"], isCache)
	view.LoadPlugins(
		plugin.NoEscape(),
	)

	go func() {
		log.Info("listen and serve 8089")
		log.Info(http.ListenAndServe(":8089", route.MiddleHandle(router)))
	}()

	sigChan := make(chan int)
	go func() {
		c := make(chan os.Signal, 1)
		signal.Notify(c, os.Interrupt, os.Kill)
		for {
			select {
			case <-c:
				log.Info("App quit by signal")
				sigChan <- 1
			case <-util.ExitChan:
				log.Info("App quit manually")
				sigChan <- 1
			}
		}
	}()
	<-sigChan
}