|
|
|
/**
|
|
|
|
* Created by GoLand.
|
|
|
|
* User: link1st
|
|
|
|
* Date: 2019-07-25
|
|
|
|
* Time: 09:59
|
|
|
|
*/
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"gowebsocket/lib/redislib"
|
|
|
|
"gowebsocket/routers"
|
|
|
|
"gowebsocket/servers/grpcserver"
|
|
|
|
"gowebsocket/servers/task"
|
|
|
|
"gowebsocket/servers/websocket"
|
|
|
|
"io"
|
|
|
|
"net/http"
|
|
|
|
"os"
|
|
|
|
"os/exec"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/spf13/viper"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
initConfig()
|
|
|
|
|
|
|
|
initFile()
|
|
|
|
|
|
|
|
initRedis()
|
|
|
|
|
|
|
|
router := gin.Default()
|
|
|
|
// 初始化路由
|
|
|
|
routers.Init(router)
|
|
|
|
routers.WebsocketInit()
|
|
|
|
|
|
|
|
// 定时任务
|
|
|
|
task.Init()
|
|
|
|
|
|
|
|
// 服务注册
|
|
|
|
task.ServerInit()
|
|
|
|
|
|
|
|
go websocket.StartWebSocket()
|
|
|
|
// grpc
|
|
|
|
go grpcserver.Init()
|
|
|
|
|
|
|
|
// go open()
|
|
|
|
|
|
|
|
httpPort := viper.GetString("app.httpPort")
|
|
|
|
http.ListenAndServe(":"+httpPort, router)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 初始化日志
|
|
|
|
func initFile() {
|
|
|
|
// Disable Console Color, you don't need console color when writing the logs to file.
|
|
|
|
gin.DisableConsoleColor()
|
|
|
|
|
|
|
|
// Logging to a file.
|
|
|
|
logFile := viper.GetString("app.logFile")
|
|
|
|
f, _ := os.Create(logFile)
|
|
|
|
gin.DefaultWriter = io.MultiWriter(f)
|
|
|
|
}
|
|
|
|
|
|
|
|
func initConfig() {
|
|
|
|
viper.SetConfigName("config/app")
|
|
|
|
viper.AddConfigPath(".") // 添加搜索路径
|
|
|
|
|
|
|
|
err := viper.ReadInConfig()
|
|
|
|
if err != nil {
|
|
|
|
panic(fmt.Errorf("Fatal error config file: %s \n", err))
|
|
|
|
}
|
|
|
|
|
|
|
|
fmt.Println("config app:", viper.Get("app"))
|
|
|
|
fmt.Println("config redis:", viper.Get("redis"))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func initRedis() {
|
|
|
|
redislib.ExampleNewClient()
|
|
|
|
}
|
|
|
|
|
|
|
|
func open() {
|
|
|
|
|
|
|
|
time.Sleep(1000 * time.Millisecond)
|
|
|
|
|
|
|
|
httpUrl := viper.GetString("app.httpUrl")
|
|
|
|
httpUrl = "http://" + httpUrl + "/home/index"
|
|
|
|
|
|
|
|
fmt.Println("访问页面体验:", httpUrl)
|
|
|
|
|
|
|
|
cmd := exec.Command("open", httpUrl)
|
|
|
|
cmd.Output()
|
|
|
|
}
|