- 重构了 Pack 函数,支持处理不同类型的 data 参数 - 优化了数据打包过程,使用反射处理结构体和切片 - 修改了 TomeeHeader 结构体,使用 EnumCommandID 类型 - 调整了 login 相关的结构体定义 - 优化了 main 函数中的数据处理逻辑
35 lines
948 B
Go
35 lines
948 B
Go
package login
|
||
|
||
import (
|
||
"blazing/common/socket/handler"
|
||
"blazing/cool"
|
||
"context"
|
||
"encoding/hex"
|
||
"fmt"
|
||
"strings"
|
||
)
|
||
|
||
// LoginSidInfo 登录携带的凭证结构体
|
||
type LoginSidInfo struct { //这里直接使用组合来实现将传入的原始头部数据和结构体参数序列化
|
||
Handler handler.TomeeHeader `cmd:"1001" `
|
||
|
||
Sid []byte `struc:"[16]byte"` // 登录会话ID,固定长度16字节
|
||
// NotLogin uint32 `error="10001"|struc:"[0]pad"` //返回错误码 ,不序列化,仅作为错误码
|
||
// ErrorPassWord uint32 `struc:"[0]pad"`
|
||
}
|
||
|
||
func CheakSession(c LoginSidInfo) bool {
|
||
// tt, _ := cool.CacheManager.Keys(context.Background())
|
||
//g.Dump(tt)
|
||
t1 := hex.EncodeToString(c.Sid)
|
||
|
||
t2 := strings.Trim(t1, " ")
|
||
t, err := cool.CacheManager.Get(context.Background(), t2)
|
||
fmt.Println("后端获取", string(c.Sid), t, err)
|
||
if t.Uint32() == c.Handler.UserID {
|
||
return true
|
||
}
|
||
|
||
return false
|
||
}
|