Files
bl/common/core/pack.go
昔念 feabc7153a refactor(logic): 重构逻辑模块
- 移除了 player.go 中的 SendPackBytes 方法
- 将 TomeeHeader 中的 CMDID 改为 CMD,类型从 uint32 改为 EnumCommandID
- 删除了 controller 文件夹下的 service.go 和 login.go
- 新增了 login 文件夹下的 PlayerLoginService.go
- 优化了 main.go 中的 Start 函数,使用 controller.Recv 作为回调
2025-06-26 23:20:11 +08:00

68 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package core
import (
"blazing/common/socket/cmd"
"blazing/common/socket/handler"
"bytes"
"github.com/lunixbochs/struc"
"github.com/panjf2000/gnet"
)
func SendError(cmd cmd.EnumCommandID, data any) { //TODO发送错误码的实现
//序列化结构体取错误码,然后构造错误结构
//SEND ERROR 方法通过error tag取到标签然后error库内取参数
}
func SendPack(c gnet.Conn, cmd cmd.EnumCommandID, data any) { //TODO 待测试
//t := reflect.TypeOf(data)
// var datar []byte
// var iserror uint32 = 0
// switch t.Kind() {
// case reflect.Slice:
// datar = data.([]byte)
// //p.Conn.Write(p.pack(cmd, data.([]byte))) //写入数据
// case reflect.Struct:
// var data1 bytes.Buffer
// struc.Pack(&data1, &data)
// datar = data1.Bytes()
// // p.Conn.Write(p.pack(cmd, data))
// case reflect.Uint32: //说明是错误码
// iserror = data.(uint32)
// default:
// // 可选:处理 nil 数据情况,直接返回
// datar = nil
// return
// }
//c.Write(pack(packhead(userid uint32, cmd cmd.EnumCommandID, data []byte, iserror uint32)))
}
func Pack(userid uint32, cmd cmd.EnumCommandID, data []byte, iserror uint32) []byte { //组包
head1 := handler.TomeeHeader{
Len: uint32(len(data) + 17),
CMD: uint32(cmd),
Version: "7",
UserID: userid,
Result: iserror,
Data: data,
}
if iserror != 0 { //如果存在错误码
head1.Data = nil
}
var data1 bytes.Buffer
struc.Pack(&data1, &head1)
return data1.Bytes()
}