重命名包 client 为 edge;重命名包 server 为 gateway
This commit is contained in:
32
gateway/web/handlers/auth.go
Normal file
32
gateway/web/handlers/auth.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"proxy-server/gateway/app"
|
||||
"proxy-server/gateway/core"
|
||||
)
|
||||
|
||||
type AuthReq struct {
|
||||
Port uint16 `json:"port"`
|
||||
core.Permit
|
||||
}
|
||||
|
||||
func Auth(ctx *fiber.Ctx) (err error) {
|
||||
|
||||
// 安全验证
|
||||
var sec core.SecuredReq
|
||||
if err := ctx.BodyParser(&sec); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 获取请求参数
|
||||
req, err := core.Decrypt[AuthReq](&sec, app.PlatformSecret)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 保存授权配置
|
||||
app.Permits.Store(req.Port, &req.Permit)
|
||||
|
||||
return nil
|
||||
}
|
||||
35
gateway/web/handlers/debug.go
Normal file
35
gateway/web/handlers/debug.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"proxy-server/gateway/debug"
|
||||
"slices"
|
||||
)
|
||||
|
||||
func GetConsuming(c *fiber.Ctx) error {
|
||||
list := debug.ConsumingList()
|
||||
// sort by total time
|
||||
slices.SortFunc(list, func(a debug.Consuming, b debug.Consuming) int {
|
||||
if a.Total < b.Total {
|
||||
return 1
|
||||
} else if a.Total > b.Total {
|
||||
return -1
|
||||
}
|
||||
return 0
|
||||
})
|
||||
// map to string
|
||||
strList := make([]string, len(list))
|
||||
for i := 0; i < len(list); i++ {
|
||||
times := list[i]
|
||||
strList[i] = fmt.Sprintf("Auth: %s, Data: %s, Proxy: %s, Total: %s", times.Auth, times.Data, times.Proxy, times.Total)
|
||||
}
|
||||
return c.JSON(strList)
|
||||
}
|
||||
|
||||
func RestConsuming(c *fiber.Ctx) error {
|
||||
debug.InitConsumingList()
|
||||
return c.JSON(fiber.Map{
|
||||
"message": "success",
|
||||
})
|
||||
}
|
||||
12
gateway/web/router.go
Normal file
12
gateway/web/router.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"proxy-server/gateway/web/handlers"
|
||||
)
|
||||
|
||||
func Router(r *fiber.App) {
|
||||
var debug = r.Group("/debug")
|
||||
debug.Get("/debug/consuming/list", handlers.GetConsuming)
|
||||
debug.Get("/debug/consuming/reset", handlers.RestConsuming)
|
||||
}
|
||||
41
gateway/web/web.go
Normal file
41
gateway/web/web.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"proxy-server/gateway/env"
|
||||
"strconv"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
web *fiber.App
|
||||
}
|
||||
|
||||
func New() *Server {
|
||||
return &Server{}
|
||||
}
|
||||
|
||||
func (s *Server) Run() error {
|
||||
s.web = fiber.New()
|
||||
|
||||
// 配置中间件和路由
|
||||
Router(s.web)
|
||||
|
||||
// 启动服务
|
||||
address := ":" + strconv.Itoa(int(env.AppWebPort))
|
||||
err := s.web.Listen(address)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Server) Stop() error {
|
||||
err := s.web.Shutdown()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user