加入网络层

This commit is contained in:
2025-06-26 23:57:54 +08:00
parent 53106465ed
commit 0f29dccec4
57 changed files with 1859 additions and 1274 deletions

76
Server/Gateway/app/app.go Normal file
View File

@@ -0,0 +1,76 @@
package app
import (
"common/db/etcd"
"common/discover"
"common/log"
"common/net/grpc/service"
"common/net/socket/websocket"
"fmt"
"gateway/config"
"gateway/grpc_server"
"gateway/handler/ws_handler"
"github.com/gin-gonic/gin"
"github.com/judwhite/go-svc"
"runtime/debug"
"sync"
)
type Program struct {
wg *sync.WaitGroup
server service.IService // grpc服务
webServer *gin.Engine // web服务
wsServer *websocket.WSServer // websocket服务
stop chan bool
}
func (p *Program) Init(_ svc.Environment) error {
if cfg, err := p.initBase(); err != nil {
return err
} else {
log.Infof(fmt.Sprintf("%v starting...", cfg.App.Name))
if err := p.initDB(cfg); err != nil {
return err
}
if err := p.initWebServer(cfg); err != nil {
return err
}
if err := p.initWsServer(cfg); err != nil {
return err
}
}
return nil
}
func (p *Program) Start() error {
defer func() {
if err := recover(); err != nil {
fmt.Printf("Start err: %v", err)
debug.PrintStack()
_ = p.Stop()
}
}()
discover.Listen()
p.server = grpc_server.NewServer(config.Get().Grpc.Registry.TTL)
p.server.Init(config.Get().Grpc.Registry.Address, config.Get().Grpc.Registry.Port)
ws_handler.NewClient(123, nil)
return nil
}
func (p *Program) Stop() error {
defer func() {
if err := recover(); err != nil {
fmt.Printf("Stop err: %v", err)
debug.PrintStack()
}
}()
discover.Close()
p.server.Close()
_ = etcd.Close()
return nil
}

View File

@@ -0,0 +1,22 @@
package app
import (
"common/log"
"common/utils"
"gateway/config"
"math/rand"
)
func (p *Program) initBase() (*config.Config, error) {
// 配置
cfg, err := config.LoadConfig("./config")
if err != nil {
return nil, err
}
// 日志
log.Init(cfg.Log.Debug, cfg.Log.MaxSize, cfg.Log.MaxBackups, cfg.Log.MaxAge, cfg.Log.Level)
// 雪花
utils.InitSnowflake(int64(rand.Intn(1000)))
return cfg, nil
}

20
Server/Gateway/app/db.go Normal file
View File

@@ -0,0 +1,20 @@
package app
import (
"common/db/etcd"
"gateway/config"
)
func (p *Program) initDB(cfg *config.Config) error {
// ETCD
if err := etcd.Init(cfg.DB.Etcd.Address); err != nil {
return err
}
return nil
}
func (p *Program) stopDB() error {
_ = etcd.Close()
return nil
}

16
Server/Gateway/app/web.go Normal file
View File

@@ -0,0 +1,16 @@
package app
import (
"gateway/config"
"gateway/net/http_gateway"
)
func (p *Program) initWebServer(cfg *config.Config) error {
p.webServer = http_gateway.InitRouter(cfg)
return nil
}
func (p *Program) stopWebServer() error {
return nil
}

View File

@@ -0,0 +1,39 @@
package app
import (
"common/log"
"common/net/socket/websocket"
"gateway/config"
"gateway/net/ws_gateway"
"time"
)
func (p *Program) initWsServer(cfg *config.Config) error {
//p.wsServer = websocket.NewWSServer(
// &ws_gateway.GatewayWsServer{
// Decoder: &ws_gateway.Decoder{},
// },
// log.GetLogger(),
// fmt.Sprintf("tcp4://%v:%d", cfg.SocketServer.Host, cfg.SocketServer.Port),
// true,
// true,
// false,
// false,
// true,
// 8,
// 5*time.Second,
//)
p.wsServer = websocket.NewWSServer(
&ws_gateway.GatewayWsServer{},
log.GetLogger(),
5*time.Second,
)
return nil
}
func (p *Program) stopWsServer() error {
_ = p.wsServer.Stop()
return nil
}