refactor(controller): 重构控制器处理逻辑
- 优化了 Recv 函数中的参数处理方式 - 修改了 GetServer 和 Login 函数的返回类型和逻辑 - 调整了 LoginSidInfo 和 SidInfo 结构体的方法 - 移除了未使用的 Blazingservice 接口
This commit is contained in:
@@ -120,6 +120,17 @@ func (h *TomeeHeader) Ret() []byte { //默认返回方法
|
|||||||
return h.Return
|
return h.Return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
func (h *TomeeHeader) Set(T any) []byte { //默认返回方法
|
||||||
|
h.Return = h.Pack(T) //这里保存一下,用来给调用
|
||||||
|
return h.Return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// var _ Blazingservice = (*TomeeHeader)(nil)
|
||||||
|
|
||||||
|
// type Blazingservice interface {
|
||||||
|
// Ret() []byte
|
||||||
|
// }
|
||||||
|
|
||||||
// MergeBytes 将多个字节数组合并为一个
|
// MergeBytes 将多个字节数组合并为一个
|
||||||
func MergeBytes(arrays ...[]byte) []byte {
|
func MergeBytes(arrays ...[]byte) []byte {
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
|
|||||||
//funct := cmdlister.Type().NumIn()
|
//funct := cmdlister.Type().NumIn()
|
||||||
|
|
||||||
// 如果需要可设置的变量(用于修改值),创建指针并解引用
|
// 如果需要可设置的变量(用于修改值),创建指针并解引用
|
||||||
ptrValue := reflect.New(cmdlister.Type().In(0))
|
ptrValue := reflect.New(cmdlister.Type().In(0).Elem())
|
||||||
|
|
||||||
tt1 := ptrValue.Elem().Addr().Interface()
|
tt1 := ptrValue.Elem().Addr().Interface()
|
||||||
// fmt.Println(tt1)
|
// fmt.Println(tt1)
|
||||||
@@ -182,7 +182,7 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
|
|||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
//fmt.Println(tt1)
|
//fmt.Println(tt1)
|
||||||
ptrValue1 := ptrValue.Elem()
|
ptrValue1 := ptrValue.Elem().Addr()
|
||||||
// 设置 Name 字段
|
// 设置 Name 字段
|
||||||
nameField := ptrValue.Elem().Field(0) //首个为header
|
nameField := ptrValue.Elem().Field(0) //首个为header
|
||||||
if nameField.IsValid() && nameField.CanSet() {
|
if nameField.IsValid() && nameField.CanSet() {
|
||||||
@@ -209,11 +209,24 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
// }
|
// }
|
||||||
t, ok := ptrValue1.Interface().(Blazingservice)
|
// if cmdlister.Type().In(0).Implements(reflect.TypeOf((*Blazingservice)(nil)).Elem()) {
|
||||||
|
// fmt.Printf("参数 %d 是结构体且实现了 MyInterface 接口\n" )
|
||||||
|
// tt1
|
||||||
|
|
||||||
if ok && t.Ret() != nil {
|
// } else {
|
||||||
r.SendPack(t.Ret())
|
// fmt.Printf("参数 %d 是结构体但未实现 MyInterface 接口\n", i)
|
||||||
t.Ret()
|
// }
|
||||||
|
aa := ptrValue1.Elem().Field(0).Addr().Interface()
|
||||||
|
|
||||||
|
t := aa.(Blazingservice)
|
||||||
|
//st, ok := aa.(Blazingservice)
|
||||||
|
//fmt.Println(t.Ret())
|
||||||
|
if t.Ret() != nil {
|
||||||
|
err := r.SendPack(t.Ret())
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
//t.Ret()
|
||||||
}
|
}
|
||||||
//r.SendPack(ret[0].Interface().([]byte))
|
//r.SendPack(ret[0].Interface().([]byte))
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// 处理命令: 105
|
// 处理命令: 105
|
||||||
func (h Controller) GetServer(data server.SidInfo, c gnet.Conn) { //这个时候player应该是空的
|
func (h Controller) GetServer(data *server.SidInfo, c gnet.Conn) { //这个时候player应该是空的
|
||||||
t := data.Init() //初始化方法,然后可以返回默认返回值修改
|
t := data.Init() //初始化方法,然后可以返回默认返回值修改
|
||||||
fmt.Println(t)
|
fmt.Println(t)
|
||||||
//return //TODO 这里待实现改成接口调用Ret方法
|
//return //TODO 这里待实现改成接口调用Ret方法
|
||||||
|
|||||||
@@ -4,32 +4,22 @@ import (
|
|||||||
"blazing/common/data/share"
|
"blazing/common/data/share"
|
||||||
"blazing/logic/service"
|
"blazing/logic/service"
|
||||||
"blazing/logic/service/login"
|
"blazing/logic/service/login"
|
||||||
"encoding/hex"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/panjf2000/gnet/v2"
|
"github.com/panjf2000/gnet/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 处理命令: 1001
|
// 处理命令: 1001
|
||||||
func (h *Controller) Login(data login.LoginSidInfo, c gnet.Conn) []byte { //这个时候player应该是空的
|
func (h *Controller) Login(data *login.LoginSidInfo, c gnet.Conn) { //这个时候player应该是空的
|
||||||
|
|
||||||
if tt := data.CheakSession(); tt { //说明sid正确
|
if tt := data.CheakSession(); tt { //说明sid正确
|
||||||
h.RPCClient.Kick(data.Head.UserID) //先踢人
|
h.RPCClient.Kick(data.Head.UserID) //先踢人
|
||||||
|
|
||||||
// h.RPCClient.UserLogin(int32(h.Port), int32(data.Head.UserID)) //初始化用户登录
|
// h.RPCClient.UserLogin(int32(h.Port), int32(data.Head.UserID)) //初始化用户登录
|
||||||
service.SetPlayer(c, data.Head.UserID)
|
service.SetPlayer(c, data.Head.UserID)
|
||||||
|
|
||||||
share.ShareManager.SetUserOnline(data.Head.UserID, h.Port) //设置用户登录服务器
|
share.ShareManager.SetUserOnline(data.Head.UserID, h.Port) //设置用户登录服务器
|
||||||
}
|
}
|
||||||
|
data.Init()
|
||||||
t1, _ := hex.DecodeString("0000045D37000003E9000186A600000000000186A6683F89CF6E69656F0000000000000000000000000008000F00000000000000000000000000000000000000000000000000000001000001DB0000018B000000000000A8C000000000000000000000000000000000000000080001388000000001000000017FFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000064000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001FFFFFFFF000000004E4F4E4F0000000000000000000000000000000000000001000000010000000100000001000000010000000100000001000000000003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000100000064000000000000000000000000000000000000001F000000000000006400000000000093F4000093F4000000D5000000F7000000AD00000088000000920000008C0000009C00000000000000000000000000000000000000000000000000000004000027900000001B00004E6200000014000028380000002800004E3E0000002368493DC60000000000000000000000000000000000000000000100000000000000A937000007D1000186A600000000000186A66E69656F00000000000000000000000000000000000000000000000F0000000000000000000001DB0000018B0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000001000000000000000000000000000000000000000000000000000000000000000000000000")
|
|
||||||
//t1 = t1[17:]
|
|
||||||
fmt.Println(t1[:40])
|
|
||||||
data.Head.Version = "7"
|
|
||||||
data.Head.UserID = 99942
|
|
||||||
data.Head.Result = 0
|
|
||||||
fmt.Println(data.Head.Pack(t1[17:])[:40])
|
|
||||||
return data.Head.Pack(t1[17:])[:40]
|
|
||||||
//return //t1, _ := hex.DecodeString("000186A6683F89CF6E69656F0000000000000000000000000008000F00000000000000000000000000000000000000000000000000000001000001DB0000018B000000000000A8C000000000000000000000000000000000000000080001388000000001000000017FFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000064000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001FFFFFFFF000000004E4F4E4F0000000000000000000000000000000000000001000000010000000100000001000000010000000100000001000000000003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000100000064000000000000000000000000000000000000001F000000000000006400000000000093F4000093F4000000D5000000F7000000AD00000088000000920000008C0000009C00000000000000000000000000000000000000000000000000000004000027900000001B00004E6200000014000028380000002800004E3E0000002368493DC60000000000000000000000000000000000000000000100000000000000A937000007D1000186A600000000000186A66E69656F00000000000000000000000000000000000000000000000F0000000000000000000001DB0000018B0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000001000000000000000000000000000000000000000000000000000000000000000000000000")
|
//return //t1, _ := hex.DecodeString("000186A6683F89CF6E69656F0000000000000000000000000008000F00000000000000000000000000000000000000000000000000000001000001DB0000018B000000000000A8C000000000000000000000000000000000000000080001388000000001000000017FFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000064000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001FFFFFFFF000000004E4F4E4F0000000000000000000000000000000000000001000000010000000100000001000000010000000100000001000000000003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000100000064000000000000000000000000000000000000001F000000000000006400000000000093F4000093F4000000D5000000F7000000AD00000088000000920000008C0000009C00000000000000000000000000000000000000000000000000000004000027900000001B00004E6200000014000028380000002800004E3E0000002368493DC60000000000000000000000000000000000000000000100000000000000A937000007D1000186A600000000000186A66E69656F00000000000000000000000000000000000000000000000F0000000000000000000001DB0000018B0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000001000000000000000000000000000000000000000000000000000000000000000000000000")
|
||||||
|
|
||||||
// return t1
|
// return t1
|
||||||
|
|||||||
@@ -16,6 +16,18 @@ type LoginSidInfo struct { //这里直接使用组合来实现将传入的原始
|
|||||||
// ErrorPassWord uint32 `struc:"[0]pad"`
|
// ErrorPassWord uint32 `struc:"[0]pad"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *LoginSidInfo) Init() []byte { //默认返回方法
|
||||||
|
t1, _ := hex.DecodeString("0000045D37000003E9000186A600000000000186A6683F89CF6E69656F0000000000000000000000000008000F00000000000000000000000000000000000000000000000000000001000001DB0000018B000000000000A8C000000000000000000000000000000000000000080001388000000001000000017FFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000064000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001FFFFFFFF000000004E4F4E4F0000000000000000000000000000000000000001000000010000000100000001000000010000000100000001000000000003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000100000064000000000000000000000000000000000000001F000000000000006400000000000093F4000093F4000000D5000000F7000000AD00000088000000920000008C0000009C00000000000000000000000000000000000000000000000000000004000027900000001B00004E6200000014000028380000002800004E3E0000002368493DC60000000000000000000000000000000000000000000100000000000000A937000007D1000186A600000000000186A66E69656F00000000000000000000000000000000000000000000000F0000000000000000000001DB0000018B0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000001000000000000000000000000000000000000000000000000000000000000000000000000")
|
||||||
|
//t1 = t1[17:]
|
||||||
|
fmt.Println(t1[:40])
|
||||||
|
s.Head.Version = "7"
|
||||||
|
s.Head.UserID = 99942
|
||||||
|
s.Head.Result = 0
|
||||||
|
//s //return data.Head.Pack(t1[17:])[:40]
|
||||||
|
s.Head.Set(t1[17:]) //返回传参
|
||||||
|
return t1[:40]
|
||||||
|
|
||||||
|
}
|
||||||
func (l *LoginSidInfo) CheakSession() bool {
|
func (l *LoginSidInfo) CheakSession() bool {
|
||||||
// tt, _ := cool.CacheManager.Keys(context.Background())
|
// tt, _ := cool.CacheManager.Keys(context.Background())
|
||||||
//g.Dump(tt)
|
//g.Dump(tt)
|
||||||
|
|||||||
@@ -20,10 +20,10 @@ type SidInfo struct { //这里直接使用组合来实现将传入的原始头
|
|||||||
// ErrorPassWord uint32 `struc:"[0]pad"`
|
// ErrorPassWord uint32 `struc:"[0]pad"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s SidInfo) Init() *commendSvrInfo { //默认返回方法
|
func (s *SidInfo) Init() *commendSvrInfo { //默认返回方法
|
||||||
r := newCommendSvrInfo()
|
r := newCommendSvrInfo()
|
||||||
r.ServerList = GetServerInfoList()
|
r.ServerList = GetServerInfoList()
|
||||||
s.Head.Return = s.Head.Pack(r) //这里保存一下,用来给调用
|
s.Head.Set(r) //返回传参
|
||||||
return r
|
return r
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user