first commit

This commit is contained in:
ytc1012
2025-11-18 18:08:48 +08:00
commit de90ad79ea
162 changed files with 28098 additions and 0 deletions

25
middleware/check_login.go Normal file
View File

@@ -0,0 +1,25 @@
package middleware
import (
"log/slog"
"slgserver/constant"
"slgserver/net"
)
func CheckLogin() net.MiddlewareFunc {
return func(next net.HandlerFunc) net.HandlerFunc {
return func(req *net.WsMsgReq, rsp *net.WsMsgRsp) {
_, err := req.Conn.GetProperty("uid")
if err != nil {
slog.Warn("connect not found uid",
"msgName", req.Body.Name)
rsp.Body.Code = constant.UserNotInConnect
req.Conn.Push("account.pleaseLogin", nil)
return
}
next(req, rsp)
}
}
}

23
middleware/check_rid.go Normal file
View File

@@ -0,0 +1,23 @@
package middleware
import (
"log/slog"
"slgserver/constant"
"slgserver/net"
)
func CheckRId() net.MiddlewareFunc {
return func(next net.HandlerFunc) net.HandlerFunc {
return func(req *net.WsMsgReq, rsp *net.WsMsgRsp) {
_, err := req.Conn.GetProperty("rid")
if err != nil {
rsp.Body.Code = constant.RoleNotInConnect
slog.Warn("connect not found role",
"msgName", req.Body.Name)
return
}
next(req, rsp)
}
}
}

23
middleware/check_role.go Normal file
View File

@@ -0,0 +1,23 @@
package middleware
import (
"log/slog"
"slgserver/constant"
"slgserver/net"
)
func CheckRole() net.MiddlewareFunc {
return func(next net.HandlerFunc) net.HandlerFunc {
return func(req *net.WsMsgReq, rsp *net.WsMsgRsp) {
_, err := req.Conn.GetProperty("role")
if err != nil {
rsp.Body.Code = constant.RoleNotInConnect
slog.Warn("connect not found role",
"msgName", req.Body.Name)
return
}
next(req, rsp)
}
}
}

View File

@@ -0,0 +1,23 @@
package middleware
import (
"fmt"
"log/slog"
"slgserver/net"
"time"
)
func ElapsedTime() net.MiddlewareFunc {
return func(next net.HandlerFunc) net.HandlerFunc {
return func(req *net.WsMsgReq, rsp *net.WsMsgRsp) {
bt := time.Now().UnixNano()
next(req, rsp)
et := time.Now().UnixNano()
diff := (et - bt)/int64(time.Millisecond)
slog.Info("ElapsedTime:",
"msgName", req.Body.Name,
"cost", fmt.Sprintf("%dms", diff))
}
}
}

20
middleware/log.go Normal file
View File

@@ -0,0 +1,20 @@
package middleware
import (
"fmt"
"log/slog"
"slgserver/net"
)
func Log() net.MiddlewareFunc {
return func(next net.HandlerFunc) net.HandlerFunc {
return func(req *net.WsMsgReq, rsp *net.WsMsgRsp) {
slog.Info("client req",
"msgName", req.Body.Name,
"data", fmt.Sprintf("%v", req.Body.Msg))
next(req, rsp)
}
}
}